function zoomToLocation(location) { var pt = new Point(location.coords.longitude, location.coords.latitude, new SpatialReference({ wkid : 4236 })); var outSR = new SpatialReference({ wkid : 27700 }); var PrjParams = new ProjectParameters(); PrjParams.geometries = [pt]; PrjParams.outSR = outSR; var datumtrans = 1314; PrjParams.transformation = datumtrans; geometryService.project(PrjParams, function(projectedPoints) { console.log('Conversion completed. Datum Transformation: ' + datumtrans + '.'); pt = projectedPoints[0]; map.centerAndZoom(pt, 8); }); }
function zoomToLocation(location) { console.debug(location); var pt = new Point(location.coords.longitude, location.coords.latitude, new SpatialReference({ wkid : 4236 })); //alert("input x = " + location.coords.longitude + " , y = " + location.coords.latitude); var outSR = new SpatialReference({ wkid : 27700 }); PrjParams = esriRequest.setRequestPreCallback(setTransformationForward); alert("prjParams datumtrans = " + PrjParams.transformation); /*geometryService.project(PrjParams, function(projectedPoints) { console.log('Conversion completed. Datum Transformation: ' + PrjParams.transformationForward + '.'); pt = projectedPoints[0]; map.centerAndZoom(pt, 8); });*/ } function setTransformationForward() { alert("got here"); var PrjParams = new ProjectParameters(); PrjParams.geometries = [pt]; PrjParams.outSR = outSR; var datumtrans = 1314; PrjParams.transformation = datumtrans; PrjParams.transformationForward = false; return PrjParams; }
//we call this method once when the application loads so that it will execute afterwards when AJAX requests are fired. esriRequest.setRequestPreCallback(addTransformationForward); ... var params = new ProjectParameters(); params.geometries = [point]; ... //setting this parameter is not working (because of NIM090102) params.transformationForward = false; gsvc.project(params, function(projectedPoints) { ... }); function addTransformationForward(ioArgs) { //lets add the parameter when we catch an AJAX request aimed at our geometry service if (ioArgs.url == "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/project") //add the request parameter manually ioArgs.content = ioArgs.content || {}; ioArgs.content.transformForward = false; // don't forget to return ioArgs. return ioArgs; }
Many thanks for that fiddle - I've just hit a similar issue (user collects in google maps, want to display in our 27700 maps) and a slightly modified version of your code works a treat.