我目前正在尝试使用 Virtual Earth/Bing Maps Web 服务对一系列纬度/经度坐标进行反向地理编码。虽然我可以成功检索职位的地址,但我还需要能够检索该职位最近的重要人口中心,以便我可以显示到最近城镇/城市/大都市中心的航向和距离等。这是为了位置在不同位置之间移动的情况,例如在高速公路/高速公路上。
有没有人知道如何做到这一点,因为我已经用头撞了几天,但我一无所获!
提前祝...
我目前正在尝试使用 Virtual Earth/Bing Maps Web 服务对一系列纬度/经度坐标进行反向地理编码。虽然我可以成功检索职位的地址,但我还需要能够检索该职位最近的重要人口中心,以便我可以显示到最近城镇/城市/大都市中心的航向和距离等。这是为了位置在不同位置之间移动的情况,例如在高速公路/高速公路上。
有没有人知道如何做到这一点,因为我已经用头撞了几天,但我一无所获!
提前祝...
尝试使用维基百科定位服务,记录在这里 http://www.geonames.org/export/wikipedia-webservice.html
我认为可以安全地假设最近的城市与地球的大小相比总是非常接近,因此您可以使用简单的毕达哥拉斯三角形。
假设你在 (lat0, long0),一个试验城市在 (lat1, long1)。
水平(EW)距离大致为
d_ew = (long1 - long0) * cos(lat0)
这乘以 cos(lat0) 以说明经线在高纬度处越来越近。
垂直(NS)距离更容易
d_ns = (lat1 - lat0)
所以两点之间的距离是
d = sqrt(d_ew * d_ew + d_ns * d_ns)
您可以针对更严格的任务改进此方法,但这对于最近的城市应该足够好。
为了比较距离,可以比较 d 平方,这意味着您可以省略 sqrt 操作。
我会做以下事情:
表格1:
T_CityPopulation
领域:
CityTownInfo,Population,LonLat
然后计算表 1 中每条记录的当前 LonLat 之间的距离,使用阈值忽略超过 x 英里的城镇/城市。然后按人口对结果进行排序。
编辑:
即使您不想维护表,它也必须存储在某个地方,我认为如果您自己维护它,至少您可以控制它,而不是依赖其他服务。