首页 / 浏览问题 / 其他 / 问题详情
计算地图两点之间距离
zlj
19EXP 2017年08月07日
  1. 发布的地图是北京54坐标系,现在想测量地图上添加的两个marker之间的距离,marker是wgs84坐标系传入的,需要怎么转换呢?
  2. var 1point = point.transform(new SuperMap.Projection("EPSG:4326"), new SuperMap.Projection("EPSG:900913"));;;
  3. var point2 = centerPoint.transform(new SuperMap.Projection("EPSG:4326"), new SuperMap.Projection("EPSG:900913"));
  4. 之前用 point1.distanceTo(Point2) 计算两点之间的距离,好像不是台准确,"EPSG:4326"和"EPSG:900913"应该换成什么吗?还是地理坐标和投影坐标怎么转换?
  5. 忘大神指教稍微详细一些

1个回答

1.客户端没有定义北京54坐标系,查了一下,北京54的EPSG是4214,

可以参考http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/developGuide.html#details8

自定义的时候需要设置很多参数,可以在http://epsg.io/4214上面查看proj4js

2.EPSG:4326是指WGS84坐标系,EPSG:900913是指的谷歌的坐标系,投影转换之后是有一定的误差的。

1,603EXP 2017年08月07日
我也没具体设置什么,但发布的地图都是显示的坐标系信息: Longitude / Latitude Coordinate System---北京54坐标系。以后我要注意什么吗?  在这个里我是不是可以用 "EPSG:4214"和"EPSG:4326" var 1point = point.transform(new SuperMap.Projection("EPSG:4214"), new SuperMap.Projection("EPSG:4326"));对传入的坐标点进行转换后用distanceTo计算距离
你是说iserver里面查看地图吗?你的地图本来就是北京54坐标系的啊

客户端里面没有定义4214,需要自行定义,参考我上面给你发的文档
...