我看到在不同的网络服务中(例如在 Twitter 或 Facebook 上,但也有其他的)他们能够说出用户的地理位置是什么。Java中是否有任何用于这种地理位置的库?
我正在考虑建立一个我们服务,这将取决于用户的地理位置。
请注意,我不是在谈论移动设备上的地理定位,我想获取在他/她的桌面计算机上使用其网络浏览器的用户的位置。
我看到在不同的网络服务中(例如在 Twitter 或 Facebook 上,但也有其他的)他们能够说出用户的地理位置是什么。Java中是否有任何用于这种地理位置的库?
我正在考虑建立一个我们服务,这将取决于用户的地理位置。
请注意,我不是在谈论移动设备上的地理定位,我想获取在他/她的桌面计算机上使用其网络浏览器的用户的位置。
具有 WiFi 定位功能的最大数据库是 Skyhook 无线。您可以从这里获取 SDK:Skyhook Location SDK
它没有完全覆盖,但在我看来它是最好的(谷歌和苹果使用它)。
他们正在维护庞大的 IP 数据库,用于根据主机跟踪用户地理位置。
作为个人,不可能维护所有这些主机映射。因此,为此,您必须告别第三方提供商的 IP 表。
但是,如果您愿意,您可以从请求标头中获取位置详细信息,即城市、地区、国家、经度、纬度。
它仅适用于 GAE 用户(IP 表由 google 维护)。
如果您愿意,您可以在 GAE 上托管一个示例应用程序并使用 Web 服务调用从您的服务器获取位置详细信息 (SOA)。特别是我正在为非 GAE 用户说话。
有关更多详细信息,请参阅GAE 发行说明
country = request.getHeader("X-AppEngine-Country");
region = request.getHeader("X-AppEngine-Region");
city = request.getHeader("X-AppEngine-City");
temp = request.getHeader("X-AppEngine-CityLatLong");