質問

誰かが使用できましたか ItemizedOverlays Android ベータ 0.9 では?動作させることはできませんが、何か間違ったことをしたのか、それともこの機能がまだ利用できないのかわかりません。

私はそれを使おうとしてきました ItemizedOverlay そして OverlayItem クラス。それらの本来の目的は、(Google マップ マッシュアップで見られるように) 地図マーカーをシミュレートすることですが、地図上にマーカーを表示するのに問題がありました。

同様の手法を使用して独自のカスタム オーバーレイを追加できます。 ItemizedOverlays それは機能しません。

自分で実装したら ItemizedOverlay (そしてオーバーライドされた createItem)、クラスの新しいインスタンスを作成すると機能するようです(抽出できます) OverlayItems そこから)しかしそれをマップに追加します Overlay list では正しく表示されません。

これは追加するために使用するコードです ItemizedOverlay としてのクラス Overlay 私のほうへ MapView.

// Add the ItemizedOverlay to the Map
private void addItemizedOverlay() {
  Resources r = getResources();
  MapView mapView = (MapView)findViewById(R.id.mymapview);
  List<Overlay> overlays = mapView.getOverlays();

  MyItemizedOverlay markers = new MyItemizedOverlay(r.getDrawable(R.drawable.icon));
  overlays.add(markers);

  OverlayItem oi = markers.getItem(0);
  markers.setFocus(oi);
  mapView.postInvalidate();
}

どこ MyItemizedOverlay と定義されている:

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {
  public MyItemizedOverlay(Drawable defaultMarker) {
    super(defaultMarker);
    populate();
  }

  @Override
  protected OverlayItem createItem(int index) {
    Double lat = (index+37.422006)*1E6;
    Double lng = -122.084095*1E6;
    GeoPoint point = new GeoPoint(lat.intValue(), lng.intValue());

    OverlayItem oi = new OverlayItem(point, "Marker", "Marker Text");
    return oi;
  }

  @Override
  public int size() {
    return 5;
  } 
}
役に立ちましたか?

解決

完全を期すために、Reto の投稿に関する議論を繰り返します。 Androidグループはこちら.

ドローアブルに境界を設定すると、うまくいくようです。

Drawable defaultMarker = r.getDrawable(R.drawable.icon);

// You HAVE to specify the bounds! It seems like the markers are drawn
// through Drawable.draw(Canvas) and therefore must have its bounds set
// before drawing.
defaultMarker.setBounds(0, 0, defaultMarker.getIntrinsicWidth(),
    defaultMarker.getIntrinsicHeight());

MyItemizedOverlay markers = new MyItemizedOverlay(defaultMarker);
overlays.add(markers);

ちなみに上記は恥ずかしげもなくパクったものです MarcelP.info のデモ. 。また、ここにあります 良いハウツー.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top