【问题标题】:algorithm to check point inside a given area / coordinates检查给定区域/坐标内的点的算法
【发布时间】:2019-06-24 11:11:58
【问题描述】:

我在这里需要帮助。我仍然不知道如何检查一个点是否在某个位置(由某些坐标给出的位置)内。例如,我有一个区域,给定的纬度和经度像这张图片

(https://i.stack.imgur.com/zR9VX.png)(被线覆盖的那个)

和它里面的一个点(标志)。检查该点是在区域内还是区域外的最快方法是什么?

请帮帮我

【问题讨论】:

标签: php algorithm google-maps-markers graph-algorithm


【解决方案1】:

我们从纬度线和北极之间的地球面积公式开始。

A = 2*pi*R*h

其中 R 是地球的半径,h 是从包含纬线的平面到极点的垂直距离。我们可以使用三角函数计算 h

h = R*(1-sin(lat))

因此一条纬线以北的面积是

A = 2*pi*R^2(1-sin(lat))

两条纬线之间的面积是一个纬度以北的面积与另一纬度以北的面积之差:

A = |2*pi*R^2(1-sin(lat2)) - 2*pi*R^2(1-sin(lat1))|
= 2*pi*R^2 |sin(lat1) - sin(lat2)|

经纬矩形的面积与经度差成正比。我刚刚计算的面积是经线之间相差 360 度的面积。因此我们寻找的区域是

A = 2*pi*R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|/360
= (pi/180)R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|

【讨论】:

猜你喜欢
  • 2016-09-11
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多