1

我目前正在尝试使用 Virtual Earth/Bing Maps Web 服务对一系列纬度/经度坐标进行反向地理编码。虽然我可以成功检索职位的地址,但我还需要能够检索该职位最近的重要人口中心,以便我可以显示到最近城镇/城市/大都市中心的航向和距离等。这是为了位置在不同位置之间移动的情况,例如在高速公路/高速公路上。

有没有人知道如何做到这一点,因为我已经用头撞了几天,但我一无所获!

提前祝...

4

4 回答 4

2

尝试使用维基百科定位服务,记录在这里 http://www.geonames.org/export/wikipedia-webservice.html

于 2009-11-02T12:07:53.603 回答
2

我认为可以安全地假设最近的城市与地球的大小相比总是非常接近,因此您可以使用简单的毕达哥拉斯三角形。

假设你在 (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 操作。

于 2009-11-02T12:19:44.067 回答
0

听起来您正在寻找主要城市的经纬度数据库,因此您可以计算距离。

是一个指向世界范围内提供几十个页面的链接。

可能还有其他人,最有可能以美国为中心(但这可能是您想要的)。

于 2009-11-02T12:00:07.380 回答
0

我会做以下事情:

表格1:

T_CityPopulation

领域:

CityTownInfo,Population,LonLat

然后计算表 1 中每条记录的当前 LonLat 之间的距离,使用阈值忽略超过 x 英里的城镇/城市。然后按人口对结果进行排序。

编辑:

即使您不想维护表,它也必须存储在某个地方,我认为如果您自己维护它,至少您可以控制它,而不是依赖其他服务。

于 2009-11-02T12:30:42.067 回答