<!-- 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>
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.