2013-02-12 101 views
3

我設置了一個標記,它的可拖動狀態爲真。但是當我撥打marker.getPosition()時,我總是得到相同的位置,就像標記的位置在拖動結束後沒有更新。谷歌地圖錯誤:標記的位置在拖動後沒有更新

mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_place)) 
     .getMap(); 

LatLng MYLOCATION = new LatLng(Double.valueOf(myLat), Double.valueOf(myLng)); 
marker = new MarkerOptions() 
    .position(MYLOCATION) 
    .title(getString(R.string.map_title_my_location)).draggable(true); 
mMap.addMarker(marker).showInfoWindow(); 
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MYLOCATION, 18)); 
close.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 
    LatLng pos = marker.getPosition(); 
    Toast.makeText(activity, "Lat: " + pos.latitude + "; Long: " + pos.longitude, Toast.LENGTH_LONG).show(); 
    } 
}); 

爲類瓦爾我定義:

GoogleMap mMap; 
MarkerOptions marker; 

任何想法?

回答

5

您應該在主要活動中實施OnMarkerDragListener()。和方法onMarkerDragEnd(),你可以(通過其ID),讓您的標記的位置內

+0

我已經做了這個,但我沒有得到lat長 – 2014-03-26 14:32:17

9

這是一個老問題,但因爲我有同樣的問題我自己,這裏的解決方案:你需要設置OnMarkerDragListener供圖實例第一個(mMap.setOnMarkerDragListener(...))爲標記位置值進行更新。你並不需要在偵聽器實現方法中做任何事情(你可以在任何你喜歡的地方使用marker.getPosition()),它們只需要存在。