php - 检查给定区域/坐标内点的算法

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

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

( /image/zR9VX.png ) (被线覆盖的那个)

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

请帮帮我

最佳答案

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

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|

关于php - 检查给定区域/坐标内点的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54453002/

相关文章:

google-maps - 谷歌地图 v3 标记在今天放大 map 时消失

javascript - 使用 Python 'runJavascript' 输入更新谷歌地图标记位置

php - 如何在 php 数组中的每个对象中添加一个新的键值对?

php - Zend Framework PHP 中页面的基本流程

php - 从 React Native 应用程序向远程 PHP 服务器发送数据时出错

algorithm - 如何在不使用对偶概念的情况下,在 O(log n) 时间内从一组点中找到距给定查询线最近的点?

algorithm - 如何在 MATLAB 中检测几乎重叠的圆形对象?

php - preg_match 特殊字符

c# - 我怎么在这里得到一个超出范围的异常?

javascript - 带有标签/文本的 Google Map API v3 多标记