繁体   English   中英

在Java中获取用户当前的经度和经度

[英]Get user's current latitude and longitude in Java

我在这里看到了很多关于Java的问题,但我看到的每一个问题似乎都是以Android为中心的:当他们打电话来自计算机而不是移动设备时,我需要一种方法来获取用户当前的经纬度。 我知道这在C#中是可行的,但我不确定如何在Java中完成它。 我之前使用过Google Maps的restful API:但是,它想要一个地址作为输入,我只想获得用户当前的lat / lon,我觉得这比调用Google更简单。 任何帮助将不胜感激。

一般来说,你不能为计算机做这件事的原因是,当你想到计算机时,计算机一般是非常明显的:

  • 一般而言,计算机没有内置GPS设备。 因此,计算机无法告诉您基于此的位置。

  • 另一种方法是尝试将IP地址映射到物理位置。 这是不可靠的,因为IP地址并没有从根本上与物理位置相关联。 通过IP地址进行地理定位只会使用户的网络服务提供商能够(并且愿意)向第三方提供位置信息。 在实践中,这些信息非常“零散”。 另一个问题是您需要依靠外部“地理定位服务”来获取信息。 它不是标准Java平台的一部分。

  • 还有另一种方法是基于地理定位WiFi热点1 此链接更详细: http//gps.about.com/od/glossary/g/wifi_position.htm 然而,这取决于用户的WiFi提供商注册他们的lat / long,以及用户打开WiFi。


1 - 我记得有一位同事在进行iPhone开发时提到,当WiFi打开时,他在iPhone(带GPS)上获得了更准确的地理定位。

Java目前不提供通用的独立于平台的API来获取位置。 但是,可能存在特定于平台的方式。

台式机上的大多数实现都将通过IP地址进行地理定位; 您可以使用Java中的这些服务( 在Java中获取地理位置的最佳方式 )。 但是,如果操作系统提供更通用的API,则可以利用任何GPS硬件。

对于Mac OS, https://superuser.com/questions/346302/is-there-a-way-to-access-os-x-location-services-from-the-command-line

这里有Gnome提供的库的详细信息,以及KDE支持计划的编写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM