arcgis api for javascript 坐标转换

来源:互联网 发布:碧然德 知乎 编辑:程序博客网 时间:2024/05/16 08:16
var lonlat={x:114.514864,y:38.04232};var mercator={x:12747736.346966475,y:4585405.935084799};//经纬度转墨卡托function lonlat2mercator(lonlat){var mercator={x:0,y:0};var x = lonlat.x *20037508.34/180;var y = Math.log(Math.tan((90+lonlat.y)*Math.PI/360))/(Math.PI/180);y = y *20037508.34/180;mercator.x = x;mercator.y = y;return mercator ;}//墨卡托转经纬度function mercator2lonlat(mercator){var lonlat={x:0,y:0};var x = mercator.x/20037508.34*180;var y = mercator.y/20037508.34*180;y= 180/Math.PI*(2*Math.atan(Math.exp(y*Math.PI/180))-Math.PI/2);lonlat.x = x;lonlat.y = y;return lonlat;}//墨卡托转经纬度定位var dx = sGeometry.x / 20037508.34 * 180;var dy = sGeometry.y / 20037508.34 * 180;var M_PI = Math.PI;dy = 180 / M_PI * (2 * Math.atan(Math.exp(dy * M_PI / 180)) - M_PI / 2);//地理坐标x为:122.10626710683903//地理坐标y为:37.48735577057014// x=dx;// y=dy;var cPoint=new esri.geometry.Point();cPoint.x=dx;cPoint.y=dy;console.log(cPoint);map.centerAt(cPoint);


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

var geometryService = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");        var incoord = 102100;  //当前坐标系           var outcoord = 4326;  //目标坐标系           var inSR = new esri.SpatialReference({wkid: incoord });           var outSR = new esri.SpatialReference({wkid: outcoord});        var inputpoint = new esri.geometry.Point(evt.mapPoint.x, evt.mapPoint.y, inSR);        var PrjParams = new esri.tasks.ProjectParameters();        PrjParams.geometries = [inputpoint];        PrjParams.outSR = outSR;                PrjParams.transformation = {wkid: parseInt(4326)}                        geometryService.project(PrjParams, function (outputpoint) {alert(经度:"+outputpoint[0].x+",纬度:"+ outputpoint[0].y);     });



原创粉丝点击