2013-04-06 154 views
3

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

回答

4

Java当前不提供通用平台无关API来获取位置。但是,可能有平台特定的方式。

台式机上的大多数实现将通过IP地址进行地理定位;您可以使用Java的这些服务(Best way to get geo-location in 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-provided library的细节,也是一个plans for support in KDE写了。

+0

谢谢,这似乎是我正在寻找。我会看看Skyhook,它看起来像是一个坚实的选择。 – 2013-04-08 19:09:41

4

你不能在一般的电脑做这种情况的原因是,在一般的电脑是很明显的,当你想想看:

  • 电脑一般没有内置GPS设备。所以电脑不能告诉你在哪里。

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

  • 还有一种方法是基于地理定位WiFi热点。此链接更详细:http://gps.about.com/od/glossary/g/wifi_position.htm。但是,这取决于用户的WiFi提供商注册其经纬度,并且用户打开WiFi。


1 - 我记得一个同事做iPhone开发提的是,他得到了更准确的地理位置上的iPhone(带GPS)当WiFi被打开。

+0

我无法找到代码,但我几乎可以肯定,我写了一个大约一年前在asp.net和C#中的网页,它会打开并告诉您当前的经纬度。我特别记得我注意到,一旦我连接到WiFi后,我能够更准确地了解我的位置 - 我绝对是通过计算机获得了我的位置,一旦启用了WiFi,它就准确无误。你有什么想法如何做到这一点? – 2013-04-06 05:31:51

+0

除了Stephen C的描述之外,我还想补充一下Google Devices的位置,在Wi-Fi设备的MAC地址(物理地址)附近添加他们的数据库来确定位置。但实际上,识别用户位置的最佳方式是GPS.With其他方式,如果这是公开信息,您可以只获取Country,Enterprise位置。 – Musa 2016-12-05 16:31:31

相关问题