4

この質問は Java についてここでよく聞かれますが、私が目にするものはすべて Android 中心のようです: ユーザーがモバイル デバイスではなくコンピューターから電話をかけているときに、ユーザーの現在の緯度と経度を取得する方法が必要です。これは C# で実行できることはわかっていますが、Java で正確に実行する方法がわかりません。以前に Google マップの RESTful API を使用したことがありますが、入力として住所が必要で、ユーザーの現在の緯度/経度を取得したいだけで、Google を呼び出すよりも簡単だと思います。どんな助けでも大歓迎です。

4

2 に答える 2

4

一般的なコンピューターでこれを行うことができない理由は、一般的なコンピューターは、考えてみると非常に明白だからです。

  • 通常、コンピュータには GPS デバイスが組み込まれていません。そのため、コンピューターはそれがどこに基づいているかを教えてくれません。

  • もう 1 つの方法は、IP アドレスを物理的な場所にマップすることです。IP アドレスは基本的に物理的な場所に関連付けられていないため、これは信頼できません。IP アドレスによるジオロケーションは、ユーザーのネットワーク サービス プロバイダーがサード パーティに位置情報を提供できる (そして提供する意思がある) 場合にのみ機能します。実際には、この情報は非常に「まだら」です。もう 1 つの問題は、情報を取得するために外部の「位置情報サービス」に依存する必要があることです。これは、標準の Java プラットフォームの一部ではありません。

  • WiFi ホットスポットの位置特定に基づく別のアプローチがあります1http://gps.about.com/od/glossary/g/wifi_position.htmのリンクで詳細が説明されています。ただし、緯度/経度を登録するユーザーの WiFi プロバイダーと、ユーザーが WiFi をオンにすることに依存します。


1 - iPhone の開発を行っている同僚が、WiFi をオンにすると、iPhone で (GPS を使用して) より正確な地理位置情報を取得できると述べたのを覚えています。

于 2013-04-06T05:21:24.280 に答える
4

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 ​​でのサポート計画についても書かれています。

于 2013-04-06T10:50:58.273 に答える