【问题标题】:Change Google Maps v3 mapOptions object after load加载后更改 Google Maps v3 mapOptions 对象
【发布时间】:2026-02-10 11:35:02
【问题描述】:

如何修改 V3 地图的 mapOptions(在加载初始地图后)?

具体来说,我希望能够翻转

draggable: false

选项

draggable: true

当一个动作(比如点击一个 div)被触发时。

补充:我已经尝试加载 jquery-ui-map 并使用:

$('#map').gmap('option', 'draggable', true);

但是,这似乎会重新加载地图并忘记所有其他现有选项。我可以重新定义它们,但这似乎有点生硬。

任何指针表示赞赏。

谢谢!

【问题讨论】:

  • 我要说的是,为什么在地球上使用 jQuery 来使事情变得复杂,而直接使用它很容易呢?......很高兴你已经发现了。 :-)
  • 请回答您自己的问题以关闭它。
  • 知道为什么这对更新控件不起作用吗?即map.set(scaleControl, false);
  • 假装我从来没有来过,'true' = 字符串(羞愧地垂下头)

标签: google-maps-api-3


【解决方案1】:

发现我什至不需要 jQuery——它已经是 Google Maps API 的一部分。只需这样做:

map.set('draggable', true);

太容易了!希望它可以帮助某人。

====== 2020 年更新 - 您应该使用:

map.setOptions({ draggable: true });

【讨论】:

  • 2020 年更新:这些天你应该使用map.setOptions({ draggable: false });
【解决方案2】:

Google Maps JavaScript API V3.25 更新

请注意,map.set() 不适用于较新版本的 Maps API。你必须使用map.setOptions()

来源:Google Maps Reference

【讨论】:

  • 好点。不熟悉的快速语法用法:map.setOptions({gestureHandling: 'greedy'});
【解决方案3】:

如果您之前已经创建了地图,您可以像这样一次设置多个选项(https://developers.google.com/maps/documentation/javascript/reference#MapOptions):

var myOptions = {
                    zoom:11,
                    center: new google.maps.LatLng(-34.397, 150.644),
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    panControl: false
                };

map.set(myOptions);

【讨论】:

  • 这种方法对我有用,但我的地图对象没有set() 功能,所以我不得不使用setOptions(myOptions),但感谢您的提示!
  • @Unixmonkey 谢谢 =)
  • 请注意,您不需要设置每个选项。也就是说,省略以前设置的选项不会将它们恢复为默认值 - 您只需要设置您想要更改的内容。例如。 map.setOptions({ draggable : true }).