2012-10-23 22 views
1

好吧。 我有一個惱人的問題,我不知道如何解決它!我的地圖中有2個標記(openstreetmap)

當我得到lat和lng形式的GPS。地圖顯示2個標記(默認一個圖標,另一個圖標由我自定義)。 我需要在地圖上出現成本圖標!

PD:我已經改變的方法來繪製()

這裏是我的代碼路徑。

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
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這意味着它會顯示位置的默認標記在地圖上

1

我有同樣的問題,我固定它刪除super.draw(...)調用我自己的ItemizedIconOverlay類的繪製覆蓋函數。

希望它有幫助!

重要編輯:上述解決方案似乎會導致標記點擊操作問題(我們必須調用super.draw方法)。

爲了解決這個問題,我留下了我的CustomItemizedOverlay類,並在每個元素上使用OverlayItem的setMarker(Drawable d)方法改變圖標,而不是粗魯,但是完成了這項工作。