首页 / 浏览问题 / 三维GIS / 问题详情
如何获取线段上到某点最近的点
1EXP 2023年10月07日
河流(矢量),标志点(两个) 获取河流线段上距离标志点最近的点,并通过所获取到的点提取两点间的河段

1个回答

你好,河流数据是折线还是曲线呢?如果是折线可以由计算点到线段的最近点的数学算法用js封装一个接口进行计算,获取到最近点后,由两个最近点绘制几何多边形与原河流图层做空间查询-相交,得到相交的线段即为两个最近点的河段。

https://blog.csdn.net/weixin_30492601/article/details/98512871

https://blog.csdn.net/jazywoo123/article/details/7796770

如果已知标志点到河流的距离,也可以通过距离查询的方式获取到最近点。

http://iclient.supermap.io/examples/classic/editor.html#query_queryByDistance

https://iclient.supermap.io/examples/leaflet/editor.html#01_mapQueryByGeometry

1,865EXP 2023年10月07日
你好,河流数据是折线;关于最近点,翻阅桌面端的文档好像可以使用autoComputeProjectPoint函数获得,但不知for js有无此方法?
相交获取两点间线段会遗漏掉维度低于两点的中间河段,不知是否有方法可直接获取折现上两点间的部分线段

红色的点是河流上的两点(假设是最近点),绘制的多边形会是紫色的,相交得到区域为黄色区域,所需要的是绿色。

如果红色点是计算得到的最近点,题中所说的‘通过所获取到的点提取两点间的河段’,没有理解错的话应该是图示箭头所指的蓝色线段。

根据问题,个人理解是这样的,回答1中所说根据最近点绘制几何多边形可以是圆形(线段cd为直径绘制的圆),如图示,A 、B点为标志点, C、D点为计算得到的最近点,题中所要获取的应该是cd点的线段,即为箭头所示的,请问是否如此?如果是这样的话,就如回答1。

...