2013-04-10 69 views
27

我正在尋找一種方法來禁用我選擇的標記功能的地圖片段的自動中心。我仍然希望標記InfoWindow顯示出來,但是不會將整個地圖居中在我選擇的標記上。如何禁用android地圖標記點擊自動中心

+0

它正常工作,正是妥善解決。 [此處輸入鏈路描述] [1] [1]:http://stackoverflow.com/questions/15925319/how-to-disable-android-map-marker-click-auto-center ?answertab =活動#tab-top – 2014-08-15 11:05:29

回答

49

看看以下職位:

Don't snap to marker after click in android map v2

有出自@DMan那裏給出的方法,基本上你需要消耗OnMarkerClick事件,並覆蓋默認行爲:

// Since we are consuming the event this is necessary to 
// manage closing openned markers before openning new ones 
Marker lastOpenned = null; 

mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 
public boolean onMarkerClick(Marker marker) { 
    // Check if there is an open info window 
    if (lastOpenned != null) { 
     // Close the info window 
     lastOpenned.hideInfoWindow(); 

     // Is the marker the same marker that was already open 
     if (lastOpenned.equals(marker)) { 
      // Nullify the lastOpenned object 
      lastOpenned = null; 
      // Return so that the info window isn't openned again 
      return true; 
     } 
    } 

    // Open the info window for the marker 
    marker.showInfoWindow(); 
    // Re-assign the last openned such that we can close it later 
    lastOpenned = marker; 

    // Event was handled by our code do not launch default behaviour. 
    return true; 
} 
}); 
+0

謝謝你的理想! – FiniteRed 2013-04-10 16:26:37

+0

@Emil Adz,我已經使用了相同的邏輯,但仍然有地圖移動onMarker Click; – 2013-11-26 09:26:43

+0

@AravinthaBashyam.c如果你在這個方法的最後返回true,那麼它不應該移動,爲什麼是倒票? – 2013-11-26 09:36:46

23

簡單的方法:

  1. 執行setOnMarkerClickListener()
  2. 默認情況下返回「TRUE」以防止GoogleMap將地圖中心移至標記。

實施例:

map.setOnMarkerClickListener(
    new OnMarkerClickListener() { 
     boolean doNotMoveCameraToCenterMarker = true; 
     public boolean onMarkerClick(Marker marker) { 
      //Do whatever you need to do here .... 
      return doNotMoveCameraToCenterMarker; 
     } 
    }); 
+2

哇這個作品就像一個魅力:D – Javier 2013-09-17 19:23:48

2

很簡單:

使用以下代碼實現setOnMarkerClickListener()。

@Override 
public boolean onMarkerClick(Marker marker) { 

    marker.showInfoWindow(); // show info window 

    return true; // can't move map by this 
} 
相關問題