1

私の Android プロジェクトでは、OSMdroid で mapquest データを使用しています。ズームレベルが提供するマップ縮尺を知りたいです (例: 1:10000 など)。DPIに応じてズームレベルをスケーリングすることがわかりました(マップのスケールは、表示しているマップビューの幅と高さにも依存しますか?)。mapquest マップ サイトを使用すると、左下隅にマップスケールが表示されますが、実際に必要な 1:10000 のような比率ではありません。

zoomlevel 16,15,14 でのスケール 1:x は何ですか?

4

2 に答える 2

5

ここでいくつかのことが起こっています。私が理解したように、それをステップスルーさせてください。

まず、マップクエストのリンクに表示されているのは比率だと思います。したがって、ズームレベル 16、15、14 の場合:

14 = 1:27083
15 = 1:13541
16 = 1:6770

リンクでは指定されていませんが、メートル単位である必要があります。したがって、ズーム レベル 14 では、すべてのピクセルが 27083 メートルを表します。

さらに、Bing マップの比率はここにあります。それらは Mapquest が報告する数値にかなり近いですが、同じではありません。

では、なぜ数値が異なるのでしょうか。ピクセルあたりのメートルの比率は、現在の緯度に応じて変化するためです。メルカトル図法が生成する歪みのため、緯度を変更してもピクセルあたりのメートル数は一定ではありません。Bing マップの値は、赤道での値です。Mapquest の値がどこから来たのかわかりません。

最後に、osmdroid でピクセルあたりのメートル数を計算するには、次のように呼び出します。

TileSystem.GroundResolution(latitude, zoomLevel);

これにより、特定の緯度のピクセルあたりのメートル数が得られます。ScaleBarOverlayこの情報を適用する方法の例については、osmdroid を参照することをお勧めします。

于 2013-09-11T13:24:22.857 に答える