ArcGIS api for js GeometryService 对任意坐标系统的坐标转换

如果用的是官方的几何服务,则需要配置代理
如果本地配置了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);
        });
    });
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值