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