gpt4 book ai didi

javascript - 在 Google map 上处理 ctrl+click

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:03 34 4
gpt4 key购买 nike

我试图让用户通过按下控制键并单击标记来在我的 map 上选择多个标记。

为此,我编写了这段代码:

google.maps.event.addListener(marker, 'click', function (e) {
// detect if is pressed ctrlKey or not to do stuff
}

在 GoogleMaps V3 docs除了 latLng 属性之外,没有关于此 e 对象的信息或文档。但是,当我使用 Google Chrome 进行调试时,我看到了这个 Ra 对象,它恰好包含了我需要的内容。我的问题是,如果按下 ctrlKey,硬编码这个未记录的 Ra 访问权限是安全的吗?

enter image description here

最佳答案

正如评论中所要求的,包含 Ra 的内容那很重要吗?我的经验是,谷歌地图不断更改那些内部变量/对象名称。


但是,已经制作了一个演示来展示如何通过按住 ctrl 并单击标记来选择多个标记:

参见 fiddle -> http://jsfiddle.net/FbGa5/
注意:您必须在ctrl 或任何其他按键可以被捕获之前通过点击一次 map 来激活iframe。

跟踪 ctrl 键:

var selecting = false,
selectedMarkers = [];

window.onkeydown = function(e) {
selecting = ((e.keyIdentifier == 'Control') || (e.ctrlKey == true));
}
window.onkeyup = function(e) {
selecting = false;
}

如果按下 ctrl 键并单击标记,则选择标记。如果选择了一个标记,它会变成蓝色,如果取消选择一个标记,它会变回红色:

google.maps.event.addListener(marker, 'click', function() {
if (!selecting) return;
var id = this.id;
var index = selectedMarkers.indexOf(id);
if (index>-1) {
this.setIcon('https://maps.gstatic.com/mapfiles/ms2/micons/red-dot.png');
selectedMarkers.splice(index, 1);
} else {
selectedMarkers.push(id);
this.setIcon('https://maps.gstatic.com/mapfiles/ms2/micons/blue-dot.png');
}
});

结论:你不需要Ra或标记点击事件中的任何其他参数以使其正常工作。

关于javascript - 在 Google map 上处理 ctrl+click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757851/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com