好。 我有一个恼人的问题,我不知道如何解决它!
当我得到lat和lng形式的gps。地图显示2个标记(默认情况下为一个图标,由我自定义另一个图标)。 我需要在地图上显示costumized图标!!
pd:我已经改变了方法DRAW()
的路径这是我的代码。
myOpenMapView = (MapView)findViewById(R.id.openmapview);
myOpenMapView.setBuiltInZoomControls(true);
myMapController = myOpenMapView.getController();
myMapController.setZoom(12);
myOpenMapView.setMultiTouchControls(true);
ArrayList<OverlayItem> anotherOverlayItemArray;
anotherOverlayItemArray = new ArrayList<OverlayItem>();
GeoPoint geoPoint = new GeoPoint(Double.valueOf(lat),
(Double.valueOf(lng)));
anotherOverlayItemArray.add(new OverlayItem("US", "US", geoPoint));
myMapController.setCenter(geoPoint);
myMapController.animateTo(geoPoint);
DefaultResourceProxyImpl defaultResourceProxyImpl = new DefaultResourceProxyImpl(this);
MyItemizedIconOverlay myItemizedIconOverlay = new MyItemizedIconOverlay(anotherOverlayItemArray, null, defaultResourceProxyImpl);
myOpenMapView.getOverlays().add(myItemizedIconOverlay);
答案 0 :(得分:1)
我遇到了同样的问题,我修复了删除super.draw(...)调用我自己的ItemizedIconOverlay类的draw overrided函数。
希望它有所帮助!
重要编辑:上面解释的解决方案似乎会导致标记点按操作出现问题(我们必须调用super.draw方法)。
为了解决这个问题,我留下了我的CustomItemizedOverlay类,并在每个元素上使用OverlayItem的setMarker(Drawable d)方法更改了图标,粗鲁但是完成了工作。
答案 1 :(得分:0)
Drawable newMarker = this.getResources().getDrawable(R.drawable.ic_launcher);
mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(anotherOverlayItemArray,
newMarker, "listener", new DefaultResourceProxyImpl(getActivity()));
mapView.getOverlays().add(mMyLocationOverlay);
或者myLocationOverlay.enableMyLocation(); is enabled
这意味着它会在地图上显示地点的默认标记