如何在 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 中获取当前用户的地理位置?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Xamarin.Forms.Map 中获取当前位置或移动到当前位置