I have been reworking the locate coordinate Widget to address a situation where a User input a Lat/long(DMS) (wkid=4326) and I have to locate them on a NAD83 (wkid=2653) basemap , so I tried to run the following code to execute that but I have been getting "Error#1069" on the Results view of the widget. Can you please tell me what am I doing wrong here is my code:
Code:
private function locateCoordinates():void
{
originatingLocateState = currentState;
// refresh before each request
hideInfoWindow();
graphicsLayer.clear();
if (locateResultAC)
{
locateResultAC.removeAll();
}
try
{
var vals:Array;
var long:String=txtLong.text;
var lat:String= txtLat.text;
vals=long.split(" ");
long=(Number(vals[0]) + Number(vals[1]) / 60 + Number(vals[2]) / 3600).toString();
vals=lat.split(" ");
lat=(Number(vals[0]) - Number(vals[1]) / 60 - Number(vals[2]) / 3600).toString();
if (long && lat)
{
showStateResults();
var locateResult:LocateResult = new LocateResult();
locateResult.symbol = resultSymbol;
locateResult.title = coordinatesLabel;
locateResult.content = long + " " + lat;
locateResult.link = "";
locateResult.selected = true;
locateResult.point = new MapPoint(Number(long), Number(lat),new SpatialReference(4326));
var gra:Graphic= new Graphic(locateResult.point);
geometryService.project([gra],map.spatialReference);
}
}
catch (error:Error)
{
showMessage(error.message, false);
}
}
Code:
private function projectCompleteHandler(event:GeometryServiceEvent):void
{
hideInfoWindow();
graphicsLayer.clear();
//WidgetEffects.flipWidget(this, viewStack, "selectedIndex", 2, 400);
try
{
var long:String = txtLong.text;
var lat:String = txtLat.text;
var point:MapPoint = (event.result as Array)[0] as MapPoint;
var icon:String = widgetIcon;
var title:String = coordinatesLabel;
var content:String = long.toString() + ", " + lat.toString();
var link:String = "";
var infoData:Object =
{
icon: icon,
title: title,
content: content,
link: link,
point: point,
geometry: point
};
//showLocation(infoData);
//showMessage(locationsLabel, false);
locateResultAC = new ArrayCollection([ infoData ]);
addSharedData(widgetTitle, locateResultAC);
showLocation(infoData);
showMessage(locationsLabel + " " + locateResultAC.length, false);
}
catch (error:Error)
{
showMessage(error.message, false);
}
}
Code:
<esri:GeometryService id="geometryService"
url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer"
projectComplete="projectCompleteHandler(event)"/>