1

出色地。我有一个恼人的问题,我不知道如何解决它!

当我得到 lat 和 lng 形式的 GPS 时。地图显示 2 个标记(默认一个图标和我自定义的另一个图标)。我需要地图上出现定制的图标!!

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);
4

2 回答 2

1

我遇到了同样的问题,我修复了它删除我自己的 ItemizedIconOverlay 类的绘制覆盖函数的 super.draw(...) 调用。

希望能帮助到你!

重要编辑:上面解释的解决方案似乎会导致标记点击操作出现问题(我们必须调用 super.draw 方法)。

为了解决这个问题,我留下了我的 CustomItemizedOverlay 类,并在每个元素上使用 OverlayItem 的 setMarker(Drawable d) 方法更改了图标,虽然粗鲁但可以完成工作。

于 2013-10-29T10:57:02.840 回答
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这意味着它将在地图上显示位置的默认标记

于 2013-03-26T02:54:48.307 回答