首页 / 浏览问题 / 桌面GIS / 问题详情
用曲面将密集点覆盖计算在非曲面上的点与曲面的距离
1EXP 2017年03月28日
想做一个主航线的监控,所有经过的船会形成多个密集的点,然后计算出船主航线的曲面,脱离该曲面的船计算出偏离的距离,请问有什么思路可以借鉴

1个回答

你好,请问是使用什么产品呢?你的分类是桌面GIS,标签是iClient和JavaScript。

就iClient和JavaScript来说计算主航线的曲面,我不太清楚你们要的效果是主航线点串的最小凸包还是最小外接圆还是最小外接椭圆等,当然可能没我想的那么复杂,也可能只是一条线的缓冲区,前者需要你们自己根据业务逻辑实现;点到面的距离,投影坐标系(单位米)可以使用iClient JavaScript Geometry的distanceTo方法得到点面最小距离和面上的点的垂足(点到直线的叫垂足)点

另外就是要考虑性能问题,就B/S开发来说,根据你们记录、存储这些点的方式和数据量采取不同的实现策略,但一般这种使用得比较深入的功能,建议计算你们要的曲面和点到面距离可以在服务端处理,使用超图组件写个服务或者扩展iServer都行,组件里或许有一些现成的方法,先确定你们的开发方式、要实现的效果等更多更细节的东西才能给出比较准确的建议
1,780EXP 2017年03月29日
非常感谢你的回答,我是用javascript来实现这样的功能,那么请教下,如何计算一个点到面的距离呢,distanceTo里的参数是矢量,还有个options,不知道应该怎么用

看图:
计算基于坐标数值,也就是说在投影坐标系下返回距离单位是米,经纬度下是度,可以先转点坐标再进行计算,类参考:
http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/apidoc/files/SuperMap/Geometry/Point-js.html#SuperMap.Geometry.Point.transform

...