ItemizedOverlays
誰かがAndroidベータ0.9で使用することができましたか?動作させることはできませんが、何か間違ったことをしたのか、この機能がまだ利用できないのかはわかりません。
私はItemizedOverlay
とOverlayItem
クラスを使おうとしています。それらの意図された目的は(Google Maps Mashupsで見られるように)マップマーカーをシミュレートすることですが、私はそれらをマップに表示させるのに問題がありました。
同様の手法を使用して独自のカスタムオーバーレイを追加できますが、機能ItemizedOverlays
しないだけです。
独自のインスタンスを実装するItemizedOverlay
と(そしてオーバーライドするとcreateItem
)、クラスの新しいインスタンスを作成することは機能しているように見えますが(そこOverlayItems
から抽出できます)、マップのOverlay
リストに追加しても、期待どおりに表示されません。
ItemizedOverlay
これは、クラスをOverlay
onとしてに追加するために使用するコードです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;
}
}