如果用的是官方的几何服务,则需要配置代理
如果本地配置了server,将几何服务开启然后域名换为自己的server的域名就可以了
esriConfig.defaults.io.proxyUrl = "/proxy/";
esriConfig.defaults.io.alwaysUseProxy = false;
加载几何服务
var geometryService = new GeometryService("https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer");
需要转换的原坐标
var spatialReferencfe = new SpatialReference('PROJCS["WGS_1984_GK_Zone_40_3",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]');
var point = new Point(379283.6502, 3962446.7391, spatialReferencfe);
转换
geometryService.project([point], new SpatialReference(4326), function (p) {
console.log(p);
});
完整代码
require([
"esri/SpatialReference",
"esri/geometry/Point",
"esri/tasks/GeometryService",
"esri/config",
"dojo/domReady!"
], function (SpatialReference, Point, GeometryService, esriConfig) {
esriConfig.defaults.io.proxyUrl = "/proxy/";
esriConfig.defaults.io.alwaysUseProxy = false;
var spatialReferencfe = new SpatialReference('PROJCS["WGS_1984_GK_Zone_40_3",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]');
var point = new Point(379283.6502, 3962446.7391, spatialReferencfe);
geometryService.project([point], new SpatialReference(4326), function (p) {
console.log(p);
});
});