【发布时间】:2010-09-06 18:47:34
【问题描述】:
有没有人设法在 Android Beta 0.9 中使用ItemizedOverlays?我无法让它工作,但我不确定我是否做错了什么,或者这个功能是否还不可用。
我一直在尝试使用 ItemizedOverlay 和 OverlayItem 类。他们的预期目的是模拟地图标记(如在 Google Maps Mashups 中所见),但我在让它们出现在地图上时遇到了问题。
我可以使用类似的技术添加自己的自定义叠加层,只是 ItemizedOverlays 不起作用。
一旦我实现了自己的ItemizedOverlay(并覆盖了createItem),创建我的类的新实例似乎可以工作(我可以从中提取OverlayItems)但将其添加到地图的Overlay列表并没有使其显示为应有的样子。
这是我用来将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;
}
}
【问题讨论】:
标签: java android overlay android-mapview