如何在Java中获取当前用户的地理位置?

我在不同的网络服务中看到过(例如在Twitter或Facebook上,但也有其他网站服务),他们能够说出用户的地理位置是什么 . Java中是否存在用于此类地理定位的库?

我正在考虑 Build 一个取决于用户地理位置的服务 .

请注意,我不是在这里谈论移动设备上的地理位置,我想获得在他/她的桌面计算机上使用他的网络经纪人的用户的位置 .

回答(2)

2 years ago

具有WiFi到位的最大数据库是Skyhook无线 . 您可以从此处获取SDK:Skyhook Location SDK

它还没有完全覆盖,但在我看来它是最好的(Google和Apple使用它) .

2 years ago

他们正在维护庞大的IP数据库,以便根据主机跟踪用户地理位置 .

作为个人,不可能维护所有这些主机映射 . 因此,您必须通过IP表格形式第三方提供商 .

但是,如果您愿意,您可以从请求 Headers 中获取位置详细信息,即城市,地区,国家/地区,经度,纬度 .

它仅适用于GAE用户(IP表由谷歌维护) .

如果您愿意,您可以在GAE上托管示例应用程序并使用webservice调用从您的服务器获取位置详细信息(SOA) . 特别是我正在为非GAE用户说话 .

欲了解更多详情,请浏览GAE ReleaseNotes

country     =   request.getHeader("X-AppEngine-Country"); 
    region      =   request.getHeader("X-AppEngine-Region");
    city        =   request.getHeader("X-AppEngine-City");
    temp        =   request.getHeader("X-AppEngine-CityLatLong");