需求描述
在做项目的时候,甲方提供的基础地图服务是高斯投影坐标,数据库的业务数据是西安80或wgs84地理坐标,于是找到基于GeometryService的解决方法。
处理shapefile
创建一个 点 shapefile,文件名XiAn80_Geo,坐标系选择 GCS_Xian_1980({wkid:4610})地理坐标系,并创建一个点(120.101099, 36.010338)(该shapefile只有一个点要素),把XiAn80_Geo坐标变换(数据管理工具–投影和变换–要素–投影)为 Xian_1980_3_Degree_GK_CM_120E({wkid:2385})的shapefile,文件名XiAn80_Pro 。对两个shapefile进行计算几何运算,获取其 X Y坐标。
使用arcgis js api验证
核心代码
require([
'esri/SpatialReference',
'esri/geometry/Point',
'esri/tasks/GeometryService',
'esri/tasks/ProjectParameters',
], function (SpatialReference,
Point,
GeometryService,
ProjectParameters) {
var param=new ProjectParameters(); //120.101099, 36.010338就是上图中XiAn80_geo图层中的点的坐标
var pt = new Point(120.101099, 36.010338,new SpatialReference({wkid:4610}));
var outSr=new SpatialReference({wkid:2385})
param.geometries=[pt]; //设置坐标转换的点
param.outSR=outSr; //要转换的结果坐标系
var geometryService = new GeometryService('http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer');
geometryService.project(param,function(res){
console.log(res)
},function (err) {
console.log(err);
})
});