8

ユーザーの現在地を追跡したいマップビューがあります。携帯電話の設定で、GPS と「ワイヤレス ネットワークの使用」が有効になっています。とはいえ、私は屋内にいるので GPS を取得できません。そのため、場所はネットワーク経由で特定されます。wifiスポットをご利用いただけます。

Google マップ アプリとアプリケーションを実行しています。

奇妙なことに、現在の場所は Google マップと私のアプリケーションでは異なります。Google マップは非常に正確ですが、私のアプリでは場所が数 100 メートルずれています。

私のアプリケーションでは、基本的に次のことを行います(デバッグ目的で):

1) 最初に 1 つのマーカーをマップに配置します。locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

2) 最初にマップ上に別のマーカーを配置します: 経由で取得したジオポイントlocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

これにより、両方のプロバイダーの最後の既知の場所がマップに表示されます (最終的には、アプリの外部から最後に認識されます)。

3) 次に、定期的な更新のために (ここではとにかく屋内で GPS を修正できないため)、次のことを行います。

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, baseLocationListener);

どちらの場合も 0 パラメータを渡す頻度と距離を確認できます。

アプリ マニフェストでは、次のアクセス許可が付与されます。

android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_MOCK_LOCATION

実際には、私の baseLocationListener が呼び出され、ログに表示されますが、更新された場所は、(LocationManager.NETWORK_PROVIDER の) 最後に確認された現在の位置と同じ緯度/経度です。

何かを見落としていたり​​、パラメーターや設定を見逃していたり​​、コードにバグがあるのではないかと考えました。したがって、現在のユーザーの場所も表示する Android マーケットから、他の (合計 3 つの) LBS アプリをインストールしました。これらのアプリに表示される現在の場所は、私のアプリケーションのものと同じで、すべて 100 メートルほど離れていますが、少なくともすべて同じです。

ここでスクリーンショットを参照してください: スクリーンショット http://img33.imageshack.us/img33/8679/mapproblem.png

http://img33.imageshack.us/img33/8679/mapproblem.png

今私は疑問に思っています:

1) 私が理解しているように、getLastKnowLocation はシステム全体であり、アプリ全体ではありません。Google マップの場所と他のすべてのアプリに違いがあるのはなぜですか?

2) Google マップはプロバイダーの lastKnownLocation を更新しませんか?

3) Google マップは、SDK に含まれている GPS_PROVIDER または NETWORK_PROVIDER 以外の別のカスタム ロケーション プロバイダーを (つまり、ライセンス上の理由により) 使用しますか?

4) Google マップのように NETWORK_PROVIDER で同じ正確な結果を得るにはどうすればよいですか?

4

3 に答える 3

2

解決策ではありませんが、答えを見つけたと思います。Google マップと SDK 内の MapView で使用されているマップ プロバイダーが異なり、データ品質に問題があるようです。

公開されている Google マップの Web API / タイルと同様に、マップ タイルの座標はあまり正確ではないようです。

同じジオポイントをピン留めした例については、このスクリーンショットを参照してください。 スクリーンショット http://img339.imageshack.us/img339/2793/gmaps2.png http://img339.imageshack.us/i/gmaps2.png/

公開地図 API を使用した地図は、数百メートルずれています。私たちはそれと一緒に暮らす必要があるようです?! :(

于 2010-07-20T12:44:36.677 に答える
2

あなたの投稿が 1 年前のものであることは承知していますが、答えは次のとおりだと思います。中国の Google マップ データはずれているか歪んでいます。あなたが中国南部にいることに気づきました。中国政府は、いくつかのセキュリティ上の理由からそれを要求しています。こちらがGoogle検索結果です。

変換アルゴリズムは不明です。おそらくあなたはそれをグーグルで検索でき、幸運を祈っています。

于 2011-06-23T01:27:44.270 に答える
0

グーグルマップの地図と衛星画像は数メートルずれていますが、それほどずれているべきではないと思います。これは数百メートルのようです。

あなたがどのようにあなたのポジションを獲得したかに応じて、あなたがどのポジションを獲得するかを決定します。私が理解していることから、これらは取得の3つのレベルです。

  • GPS
  • 通信網
  • WI-FI

GPSとネットワークは三角測量によって決定されます。GPSが最も正確です。WIFIは「whois」を使用して実行され、住所が取得されてからジオコーディングされますが、完全に不正確な場合があります。

一部の電話はGPSであると言っていますが、iPhone1のような疑似GPSである可能性が高いです。

于 2010-07-22T15:31:55.323 に答える