<fx:Script> <![CDATA[ import com.esri.ags.Graphic; import com.esri.ags.events.ExtentEvent; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.events.MapEvent; import com.esri.ags.geometry.Geometry; import com.esri.ags.geometry.MapPoint; import com.esri.ags.geometry.Polygon; import com.esri.ags.symbols.PictureMarkerSymbol; import com.esri.ags.tasks.supportClasses.BufferParameters; import com.esri.ags.utils.WebMercatorUtil; import flash.sensors.Geolocation; [Embed(source="/assets/gpsA.png")] private var m_gpsA:Class; [Embed(source="/assets/gpsB.png")] private var m_gpsB:Class; private var GPSPoint:MapPoint; private var pt:MapPoint; private var geo:Geolocation; //Load GPS icon if GPS is present protected function myMap_loadHandler(event:MapEvent):void { if (Geolocation.isSupported==true) { //Initialize the location sensor. geo = new Geolocation; //set update interval geo.setRequestedUpdateInterval(5000); //add GPS toggle button zoomToCurrentLocationImg.source = m_gpsA; zoomToCurrentLocationImg.visible = true; } else { //do not show a GPS Icon } } //activate the GPS protected function locateGPS(event:MouseEvent):void { if (myGraphicsLayer.numGraphics > 0) { myGraphicsLayer.clear(); GPSGraphicsLayer.clear(); accBorder.visible = false; zoomToCurrentLocationImg.source = m_gpsA; geo.removeEventListener(GeolocationEvent.UPDATE, onUpdate); } else { zoomToCurrentLocationImg.source = m_gpsB; geo.addEventListener(GeolocationEvent.UPDATE, onUpdate); } } //geolocation event listener private function onUpdate(event:GeolocationEvent):void { var long:String = event.longitude.toString(); var lat:String = event.latitude.toString(); var ha:Number = event.horizontalAccuracy; accText.text = ha.toString(); var longnew:Number = Number(long); var latnew:Number = Number(lat); var GPSPoint:MapPoint = new MapPoint(longnew, latnew); GPSPoint.spatialReference = new SpatialReference(4326); var outSR:SpatialReference = myMap.spatialReference; geometryService.project([GPSPoint as Geometry], outSR); } //reproject event private function projectCompleteHandler(event:GeometryServiceEvent):void { try { // Note: As of version 2.0, GeometryService returns geometries (instead of graphics) var pt:MapPoint = (event.result as Array)[0]as MapPoint; var ptGraphic:Graphic = new Graphic(null,GPSicon); ptGraphic.geometry = pt; myGraphicsLayer.clear() GPSGraphicsLayer.clear() accBorder.visible = true; myGraphicsLayer.add(ptGraphic); //add buffer code for GPS horizontal accuracy var bufferParameters:BufferParameters = new BufferParameters(); bufferParameters.geometries = [ pt ]; bufferParameters.distances = [ accText.text ]; bufferParameters.unit = GeometryService.UNIT_FOOT; bufferParameters.bufferSpatialReference = myMap.spatialReference; bufferParameters.outSpatialReference = myMap.spatialReference; geometryService.addEventListener(GeometryServiceEvent.BUFFER_COMPLETE, bufferCompleteHandler); geometryService.buffer(bufferParameters); function bufferCompleteHandler(event:GeometryServiceEvent):void { geometryService.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 = fillSymbol; GPSGraphicsLayer.add(graphic); } } if (zoomToCurrentLocationImg.source == m_gpsB) { myMap.centerAt(pt) } else { // geo.removeEventListener(GeolocationEvent.UPDATE, onUpdate); // myGraphicsLayer.clear(); GPSGraphicsLayer.clear(); } } catch (error:Error) { //Alert.show(error.toString()); } } ]]> </fx:Script> <fx:Declarations> <!--GPS accuracy Polygon--> <esri:SimpleFillSymbol id="fillSymbol" color="0x81BEF7" alpha=".5"> <esri:outline> <esri:SimpleLineSymbol width="2" color="0x0040FF"/> </esri:outline> </esri:SimpleFillSymbol> <!--GPS icon--> <esri:PictureMarkerSymbol id="GPSicon" source="@Embed(source='assets/gps.png')"/> <s:Fade id="fade" alphaFrom="1" alphaTo="0" duration="1500"/> <esri:GeometryService id="geometryService" showBusyCursor="false" projectComplete="projectCompleteHandler(event)" url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"/> </fx:Declarations>
Solved! Go to Solution.
import com.esri.ags.tasks.supportClasses.ProjectParameters
//geolocation event listener private function onUpdate(event:GeolocationEvent):void { var long:String = event.longitude.toString(); var lat:String = event.latitude.toString(); var ha:Number = event.horizontalAccuracy; accText.text = ha.toString(); var longnew:Number = Number(long); var latnew:Number = Number(lat); var GPSPoint:MapPoint = new MapPoint(longnew, latnew); GPSPoint.spatialReference = new SpatialReference(4326); var projParams:ProjectParameters = new ProjectParameters(); projParams.geometries = [GPSPoint]; projParams.outSpatialReference = myMap.spatialReference; geometryService.project(projParams); }
import com.esri.ags.tasks.supportClasses.ProjectParameters
//geolocation event listener private function onUpdate(event:GeolocationEvent):void { var long:String = event.longitude.toString(); var lat:String = event.latitude.toString(); var ha:Number = event.horizontalAccuracy; accText.text = ha.toString(); var longnew:Number = Number(long); var latnew:Number = Number(lat); var GPSPoint:MapPoint = new MapPoint(longnew, latnew); GPSPoint.spatialReference = new SpatialReference(4326); var projParams:ProjectParameters = new ProjectParameters(); projParams.geometries = [GPSPoint]; projParams.outSpatialReference = myMap.spatialReference; geometryService.project(projParams); }
//geolocation event listener private function onUpdate(event:GeolocationEvent):void { var long:String = event.longitude.toString(); var lat:String = event.latitude.toString(); var ha:Number = event.horizontalAccuracy; accText.text = ha.toString(); var longnew:Number = Number(long); var latnew:Number = Number(lat); var GPSPoint:MapPoint = new MapPoint(longnew, latnew); GPSPoint.spatialReference = new SpatialReference(4326); var outSR:SpatialReference = myMap.spatialReference; const projectParameters:ProjectParameters = new ProjectParameters; projectParameters.geometries = [ GPSPoint as Geometry ]; projectParameters.outSpatialReference = outSR; geometryService.project(projectParameters); }