0

スクロール可能でズーム可能なグリッドに一連のラベル付きマーカーを表示する必要があります。Google Maps Android API のようなものですが、実際の地図画像はなく、UI のみです。

マップを無効にして Google マップを使用していますが、問題があります --- 5 メートル未満にズームすることはできませんが、ミリメートル スケールにズームダウンする必要がある場合があります (マーカーが近くにある可能性があります)。Yandex Maps にも同様の制限があります --- 使用しない場合でも、マップの解像度を超えてズームすることはできません。

助言がありますか?

4

1 に答える 1

2

カスタム レンダラーのコードを共有できないため、一般的なアーキテクチャを次に示します。

  1. パンズームのプロパティと MapLayers のリストを持つMapView ( View を拡張する) コンポーネント

  2. onClickメソッドとrenderメソッドを持つMapLayer抽象クラス。このクラスには 2 つのサブクラスがあります。

    2.1. renderメソッドがMapViewパンズームに応じてグリッドを描画するGridLayerクラス

    2.2. マーカーを格納してレンダリングするMarkerLayerクラス

  3. マーカーは、緯度経度、および属性の HashMap (色、ID など) を格納します。

  4. Marker緯度経度MapViewの x と y にマップするには、インスタンスIProjectorインターフェイスを使用します。現在、ウィキペディアの数式を使用したメルカトル プロジェクター

  5. MarkerMarkerLayerをレンダリングするには、 MarkerRenderer抽象クラスのインスタンスを使用します。私は 2 つのMarkerRendererを持っています:円を描画するSimpleMarkerRenderer (ストロークと塗りつぶしの色はMarker属性から取得されます) と、イメージを描画するImageMarkerRenderer (マーカー属性から取得されたイメージ ID )

于 2013-08-03T05:42:10.790 に答える