<?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:mx="library://ns.adobe.com/flex/mx" 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(102100); 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="2"> <esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/> <esri:GraphicsLayer id="graphicsLayer"/> </esri:Map> </s:Application>
Try setting bufferSpatialReference to 102100 if you want to use Web Mercator and the outSpatialReference to 4326.Note from: http://sampleserver3.arcgisonline.com/ArcGIS/SDK/REST/buffer.html
Note that when the bufferSR is GCS:Points and Multipoints: if unit is linear such as feet or meters, geodesic buffering is performed.Polylines and Polygons: unit must be angular such as decimal degrees for buffering to be performed.
Have you tried setting the bufferSpatialReference on your BufferParameters?http://help.arcgis.com/en/webapi/flex/apiref/com/esri/ags/tasks/supportClasses/BufferParameters.html#bufferSpatialReference
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.