2013-04-10 63 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 
} 
相关问题