【问题标题】:restrict/limit Google Maps marker position [duplicate]限制/限制谷歌地图标记位置[重复]
【发布时间】:2014-08-27 23:29:05
【问题描述】:

有谁知道是否/如何限制/限制地图中的标记位置?

我想将我的标记限制在城镇内的某个位置(例如半径为 10 公里),并且不允许用户拖动/创建超出该半径限制的新标记...

【问题讨论】:

  • 这是一种可能...但是它不会将标记创建限制在某个位置!无论如何谢谢你;)
  • 我的想法是您将整个地图视图限制在您所在的区域,通过限制用户可以放置标记的位置。也许那不适合你。
  • 1) 定义一个中心点。 2) 定义最大半径。 3) 在标记的dragend 事件中,检查中心点与新位置之间的距离。如果太远,请将标记放回其最后位置(或中心点,这取决于您)。
  • 谢谢@MrUpsidown。我想我会听取你的建议并做一些与之相关的事情;)

标签: javascript jquery google-maps google-maps-api-3 google-maps-markers


【解决方案1】:

除了我的评论之外,这里还有一个使用地图边界作为边界的示例。

在地图首次加载时,边界被定义为地图边界:

bounds = map.getBounds();

然后在标记 dragend 事件中,我检查新位置是否在定义的范围内,如果不是,则将标记恢复到上次保存的位置:

google.maps.event.addListener(marker, 'dragend', function () {

    var position = marker.getPosition();
    bounds.contains(position) ? lastPosition = position : marker.setPosition(lastPosition);
});

您可以查看以下示例以获取实时示例(缩小并将标记拖到原始地图边界之外)。

JSFiddle demo

【讨论】:

  • 感谢您的回答,但我发现了一种更受限制的方法 (stackoverflow.com/questions/16708254/…)。这让我找到了google.maps.Polygon!我已经创建了我的城市范围,现在它很完美:)
  • 是的。取决于你想要什么。圆(半径)、地图边界或自定义边界。祝你好运!
猜你喜欢
  • 2013-04-23
  • 2014-03-21
  • 2012-09-10
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2011-06-05
  • 1970-01-01
相关资源
最近更新 更多