2 маркера на моей карте (openstreetmap)

Что ж. у меня есть раздражающая проблема, и я не знаю, как это исправить !!

Когда я получаю данные о широте и долготе 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);

person funkeeiads    schedule 23.10.2012    source источник


Ответы (2)


У меня была та же проблема, и я исправил ее, удалив вызов super.draw(...) переопределенной функции рисования моего собственного класса ItemizedIconOverlay.

Надеюсь, поможет!

ВАЖНОЕ РЕДАКТИРОВАНИЕ: Объясненное выше решение, по-видимому, вызывает проблемы с действием касания маркера (мы должны вызвать метод super.draw).

Чтобы исправить это, я оставил свой класс CustomItemizedOverlay и изменил значок, используя вместо этого метод setMarker(Drawable d) OverlayItem для каждого элемента, грубо, но выполняет свою работу.

person jordifierro    schedule 29.10.2013

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 означает, что на карте будет отображаться маркер по умолчанию для местоположения.

person sprixes    schedule 26.03.2013