如何禁用android地图标记单击自动中心

Posted

技术标签:

【中文标题】如何禁用android地图标记单击自动中心【英文标题】:How to disable android map marker click auto center 【发布时间】:2013-04-02 06:18:55 【问题描述】:

我正在寻找一种方法来禁用我的地图片段在选定标记功能上的自动居中。我仍然希望标记 InfoWindow 显示出来,但只是不要将整个地图放在我选择的标记上。

【问题讨论】:

它工作正常,完全是正确的解决方案。 [在此处输入链接描述][1] [1]:***.com/questions/15925319/… 【参考方案1】:

看看下面的帖子:

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;

);

【讨论】:

@Emil Adz,我使用了相同的逻辑,但我仍然可以在Marker Click 上移动地图; @AravinthaBashyam.c 如果您在此方法的最后返回 true,那么它不应该移动,为什么会被否决? @AravinthaBashyam.c 我想你已经写了很多次 setOnMarkerOnclick, 你是什么意思,答案非常好,并且得到了 5 个用户的支持,如果它对你不起作用,那么你做错了什么,用你的代码打开一个新问题,我会尽力帮助你。【参考方案2】:

简单的方法:

    实现 setOnMarkerClickListener() 默认情况下返回“TRUE”以防止 GoogleMap 将地图中心移动到标记处。

例子:

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

【讨论】:

【参考方案3】:

非常简单:

使用下面的代码来实现 setOnMarkerClickListener()。

@Override
public boolean onMarkerClick(Marker marker) 

    marker.showInfoWindow(); // show info window

    return true; // can't move map by this
 

【讨论】:

【参考方案4】:

简单。将moveOnMarkerPress 属性添加到MapView 并设置为false。

 <MapView
      moveOnMarkerPress=false
>

【讨论】:

这似乎是针对 ReactNative,而不是针对原生 Android SDK

以上是关于如何禁用android地图标记单击自动中心的主要内容,如果未能解决你的问题,请参考以下文章

单击标记时,新按钮会自动出现在谷歌地图(Android)上?如何删除?

Android 谷歌地图标记禁用导航选项

google maps 单击标记点作为地图中心

单击反应传单 v.3.x 中的标记时如何动态更改地图缩放?

InfoWindow中的Android Google地图摘要自动更新

无法单击标记 - 谷歌地图集群Android,无法在谷歌地图中显示信息窗口