不幸的是,数学从来不是我的强项,我正在努力使用最佳方法/公式(我将需要交给PHP代码):将地理区域划分为一系列较小的区域(可控大小)并计算给定经纬度的哪个区域
1)。从一个大的区域开始(例如覆盖整个欧洲)
2)。将这个区域分解成一系列较小的块(即将其变成各种网格)
3)。每个网格块的宽度应该大致相当于75km的距离(考虑到地球曲率)。 4)。计算每个网格块的中央纬度/经度点
5)。对于每个网格块的中心点,针对独立的经纬度点(代表感兴趣的地点)的数据库运行搜索,以找出每个网格块最多感兴趣的5个关注点。最远的兴趣点距离电网中心不超过150公里。
一旦完成了上述所有工作,我将最终得到一个网格块数据库及其相应的5个最近感兴趣的地方。
我的希望是,我应该能够采取任何随机纬度/长点并计算(使用有效的数学公式)预先计算的网格块落入其中,从而能够立即返回5个最接近的点而不必进行任何昂贵的计算。
[注:基于高性能马克的有益以下响应编辑为清楚起见]
我想你想根据球面坐标(两个角度的范围)来定义你的正方形,所以它们都是大致相同的大小,并找到球形坐标和经纬度之间转换的方式。谷歌应该能够告诉你如何做到这一点,它可以很容易地告诉哪个点在哪个方块等,并测量距离等。 – Helen
感谢这个海伦。我首先会去探索高性能马克的想法,因为它似乎略微超出我的意思(维基百科对于“球坐标”的条目让我感到困惑......) – corford