Geolocation 如何确定给定的长纬度点代表哪个城市?

Geolocation 如何确定给定的长纬度点代表哪个城市?,geolocation,location,latitude-longitude,Geolocation,Location,Latitude Longitude,我目前正在使用一个非常大的地理ip数据库,它是我从许多免费网站混合而成的 问题是-所有这些数据库的映射是:map:(ip)->(纬度,长) 我正在寻找一种方法,可以通过城市分辨率推断出这些纬度和长点的位置,如果可能的话,可以离线 谢谢您可能想尝试谷歌地理编码离线操作,您需要一个长/纬度坐标数据库,例如: 然后,为了将long/lat与城市匹配,您必须构建一个算法,将其缩小到误差范围内 蛮力法可能是使用毕达哥拉斯定理来测量距离,但这会很快杀死你的CPU。一个更好的方法可能是从排除高于或低于目标la

我目前正在使用一个非常大的地理ip数据库,它是我从许多免费网站混合而成的

问题是-所有这些数据库的映射是:map:(ip)->(纬度,长)

我正在寻找一种方法,可以通过城市分辨率推断出这些纬度和长点的位置,如果可能的话,可以离线


谢谢

您可能想尝试谷歌地理编码

离线操作,您需要一个长/纬度坐标数据库,例如:

然后,为了将long/lat与城市匹配,您必须构建一个算法,将其缩小到误差范围内


蛮力法可能是使用毕达哥拉斯定理来测量距离,但这会很快杀死你的CPU。一个更好的方法可能是从排除高于或低于目标lat/long 1或更多的结果开始,然后对其余结果进行测量。

如果您确实需要脱机信息,您可以从中获取城市和地区lat/lon信息。查询lat/lon数据并返回城市或地区将很容易。然而,正如前面所说的,谷歌将能够用他们的在线地理编码工具从你的手上减少很多开销


您可以通过cron作业以突发模式运行google的地理编码(每天最多2.500个),并在整个过程中填充您的离线数据库……

只是一个建议:如果您要进行地理编码,您可能会发现映射到zipcode或大都会统计区(如果您在美国;其他国家也有类似想法)很有用,这样你就可以参考人口统计信息。但是,请注意,您的IP->(lat,long)数据库足够精确,可以支持这种映射粒度。它通常不是。@iterator-我在使用网络上自由存在的东西。我知道它不是那么准确,但这就是我得到的