如何在gmaps4rails中设置disableAutoPanTo

时间:2016-04-24 15:55:06

标签: ruby-on-rails gmaps4rails

我正在使用gmaps4rails并希望在点击标记时停止地图平移。目前,如果您点击标记,它会在地图视图中居中。

看起来它可以解决问题,但我的实现似乎不起作用 - https://github.com/apneadiving/Google-Maps-for-Rails/commit/4c2f437a6252b7555ad5abdedcb5f9d5b08355fe

我已经实现了以下内容......

this.buildMap = function(markers) {
  handler = Gmaps.build('Google', { 
    markers: { disableAutoPanTo: true }, //This isn't working
    builders: { Marker: InfoBoxBuilder }
  });
  handler.buildMap({
    provider: {
      disableDefaultUI: true,
      zoomControl: true, 
      styles: styles
    },
    internal: {
      id: 'map'
    }
  }, 
  function() {
    markers = handler.addMarkers(markers);
    handler.bounds.extendWith(markers);
    handler.fitMapToBounds();
    handler.getMap().setZoom(12);
    google.maps.event.addListener(handler.getMap(), 'click', function() {
      handler.currentInfowindow().close();
    });
  });
};

我怀疑这是非常明显的事情,但我花了很多年的时间试图解决它没有运气。相当新的,所以任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

disableAutoPanTo选项对我来说也不起作用,但我通过简单地覆盖标记panTo函数找到了解决方法:

var markers = handler.addMarkers(markersData);
markers.forEach(function (marker) {
  marker.panTo = function () {};
});

如果您只想为某些标记禁用自动平移,这也很好。

答案 1 :(得分:0)

您必须将disableAutoPanTo: true传递给内部选项,如下所示:

internal: { disableAutoPanTo: true }