Wgs84坐标 如何判断一个点在一个线段附近半径范围内

snjvery 2018-04-22 12:43:47
如题

WGS84的球面坐标系,如何判断一个经纬度点在 两点一线的缓冲半径范围内?

我目前想法是把两点一线的线段转换为矩形,然后判断点在矩形内,但是不会计算线段指定半径内的矩形四个顶点坐标.

否有其他方法可以计算?求代码...
...全文
855 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
对于点u,以及在线段上任取两点——a和b,你可以先计算u距离a和b谁更近,然后取这个点与a、b中点作为迭代的a'、b'点进行迭代,直到两点重合,则是你找到的线段上距离u最近的点。最后再根据这个距离判断u点在不在线段附近。而最初的a、b就是取线段的两个顶点。 使用递归迭代算法就可以了,不用数学计算什么“指定半径内的矩形四个顶点坐标.”。
xuzuning 2018-04-22
  • 打赏
  • 举报
回复
轨迹线中每点的坐标值你是知道的 正序遍历,计算并记录每点的负偏差边界的坐标值 逆序遍历,计算并记录每点的正偏差边界的坐标值
snjvery 2018-04-22
  • 打赏
  • 举报
回复
如何将轨迹线带误差值行成一个柱形多边形或者矩形? 就是这个不会, 思路也类似,将轨迹线转换为多个多变形判断.
xuzuning 2018-04-22
  • 打赏
  • 举报
回复
全部化为 经纬度 再行计算 你可将轨迹线(中心线加两边的允差形成的带状图形视为一个多边形,然后判断指定的点(经纬度点)是否在此多边形中 你可在网上找到 C语言的 判定点在多边形中 的快速算法代码,自己移植一下就可以了。WPF 的Path,GDI+ 的 GraphicsPath 也都提供有相似的方法 如果你是在做网页,那么 canvas 的 isPointInPath 就是你要的方法
snjvery 2018-04-22
  • 打赏
  • 举报
回复
我的需求是要计算车辆在连续运行过程中是否在一个连续的轨迹线段内. 允许一定米数的误差.比如一个轨迹线路有10个点组成,形成一条轨迹线. 需要计算动态的点是否在这条线段内运行,允许50米的误差,也就是类似给线增加了50米的换冲区范围.轨迹线不是直线.

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧