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

Posted

技术标签:

【中文标题】如何在 Java 中获取当前用户的地理位置?【英文标题】:How to get the current user geo location in Java? 【发布时间】:2012-04-21 10:23:13 【问题描述】:

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

我正在考虑构建一个我们服务,该服务将取决于用户的地理位置。

请注意,我在这里讨论的不是移动设备上的地理定位,我想获取在他/她的桌面计算机上使用其网络浏览器的用户的位置。

【问题讨论】:

必须是IP地址。它们将用户的 IP 地址与查找数据库相匹配。 这不是1415851/best-way-to-get-geo-location-in-java的副本吗? 【参考方案1】:

具有 WiFi 定位功能的最大数据库是 Skyhook 无线。您可以从这里获取 SDK:Skyhook Location SDK

它没有完全覆盖,但我认为它是最好的(谷歌和苹果使用它)。

【讨论】:

是的,我找到了 Skyhook,但他们没有在网页上显示定价,所以我正在寻找更透明的解决方案。还是谢谢:)【参考方案2】:

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

作为个人,不可能维护所有这些主机映射。 因此,为此,您必须告别第三方提供商的 IP 表。

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

仅GAE用户可用(IP表由google维护)。

如果您愿意,您可以在 GAE 托管示例应用程序并使用 Web 服务调用从您的服务器获取位置详细信息 (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");

【讨论】:

以上是关于如何在 Java 中获取当前用户的地理位置?的主要内容,如果未能解决你的问题,请参考以下文章

java怎么调用地图获取地理位置信息

地理位置:按邻近度过滤

如何手动获取地理位置并使用 UWP 在地图中显示

如何在 Xamarin.Forms.Map 中获取当前位置或移动到当前位置

如何从 Sitecore 地理位置信息中获取用户所在的国家/地区?

如何获取用户的地理位置?