<!-- Flex 1.3 Code --> <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:esri="http://www.esri.com/2008/ags" layout="absolute" pageTitle="Buffer using the Geometry Service" > <mx:Script> <![CDATA[ import com.esri.ags.SpatialReference; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.tasks.BufferParameters; import com.esri.ags.Graphic; import com.esri.ags.geometry.MapPoint; import com.esri.ags.events.PanEvent; //mousedown event private function mouseClickHandler(event:MouseEvent):void { if (!event.shiftKey) { myMap.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); } } private function mouseDownHandler(event:MouseEvent):void { myMap.removeEventListener(MouseEvent.MOUSE_UP, mouseDownHandler); var myMapCenterPoint:Graphic = new Graphic(); myMapCenterPoint.geometry = myMap.toMapFromStage(event.stageX, event.stageY); var bufferParameters : BufferParameters = new BufferParameters(); bufferParameters.features = [myMapCenterPoint]; bufferParameters.distances = [100,200,600]; bufferParameters.unit = BufferParameters.UNIT_FOOT bufferParameters.bufferSpatialReference = new SpatialReference(2230); myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); myGeometryService.buffer( bufferParameters ); function bufferCompleteHandler( event : GeometryServiceEvent ) : void { myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); for each ( var graphic : Graphic in event.graphics ) { graphic.symbol = sfs; myGraphicsLayer.add( graphic ); } } } public function deactivate():void { myMap.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); } ]]> </mx:Script> <esri:SimpleFillSymbol id="sfs" color="0xFF0000"> <esri:SimpleLineSymbol color="0x000000"/> </esri:SimpleFillSymbol> <esri:GeometryService id="myGeometryService" url="http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> <mx:Panel width="100%" height="100%"> <mx:ControlBar> <mx:Button label="Buffer Center Of Map" mouseUp="mouseClickHandler(event)" id="btnBuffer" toolTip="Draw a Polygon"/> <mx:Button label="Deactivate" width="103" id="btnDeactivate" click="deactivate()"/> </mx:ControlBar> <esri:Map id="myMap" > <esri:ArcGISDynamicMapServiceLayer url="http://.../ArcGIS/rest/services/....../MapServer"/> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> </mx:Panel> </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="http://www.esri.com/2008/ags" pageTitle="Buffer using the Geometry Service"> <!-- This sample creates buffers around the center of the map. This example just draws the buffers, but the buffers could also be used to perform a task such as returning a list of addresses of people who live within the buffered area. --> <s:controlBarLayout> <s:HorizontalLayout horizontalAlign="center" paddingBottom="7" paddingTop="7"/> </s:controlBarLayout> <s:controlBarContent> <s:Button click="bufferCenterOfMap()" label="Buffer Center Of Map"/> </s:controlBarContent> <fx:Declarations> <esri:SimpleFillSymbol id="sfs" color="0xFF0000"> <esri:SimpleLineSymbol color="0x000000"/> </esri:SimpleFillSymbol> <esri:GeometryService id="myGeometryService" url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.SpatialReference; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.geometry.Polygon; import com.esri.ags.tasks.supportClasses.BufferParameters; private function bufferCenterOfMap():void { var myMapCenterPoint:MapPoint = MapPoint(myMap.extent.center); var bufferParameters:BufferParameters = new BufferParameters(); // Note: As of version 2.0, the GeometryService input is geometries (instead of graphics). bufferParameters.geometries = [ myMapCenterPoint ]; bufferParameters.distances = [ 50, 100 ]; // Note: As of version 2.0, the buffer constants have been moved to GeometryService. bufferParameters.unit = GeometryService.UNIT_KILOMETER; bufferParameters.bufferSpatialReference = new SpatialReference(4326); bufferParameters.outSpatialReference = myMap.spatialReference; myGeometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); myGeometryService.buffer(bufferParameters); function bufferCompleteHandler(event:GeometryServiceEvent):void { myGeometryService.removeEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); // Note: As of version 2.0, GeometryService returns geometries (instead of graphics) for each (var geometry:Polygon in event.result) { var graphic:Graphic = new Graphic(); graphic.geometry = geometry; graphic.symbol = sfs; graphicsLayer.add(graphic); } } } ]]> </fx:Script> <esri:Map id="myMap" crosshairVisible="true" level="3"> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/> <esri:GraphicsLayer id="graphicsLayer"/> </esri:Map> </s:Application>
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.