我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
Is it possible for me to change a map marker icon when the specific icon is clicked and then to toggle when another one is clicked and so on?
这些是我的标记坐标。
var markers = [
{
"title": 'Burrel',
"lat": '41.6065764',
"lng": '20.0130826',
},
{
"title": 'Grabian',
"lat": '40.9501',
"lng": '19.583533'
},
{
"title": 'Spac',
"lat": '41.899017',
"lng": '20.0456071'
}
];
下面是我的代码,它对它们进行循环,在地图上创建标记,并添加一个点击事件侦听器
for (var i = 0; i < markers.length; i++) {
var data = markers[i];
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: data.title,
icon: 'images/marker.png'
});
(function (marker, data) {
google.maps.event.addListener(marker, "click", function (e) {
var x = document.getElementsByClassName("displayblock")[0];
x.style.zIndex=0;
x.className = "w-clearfix slide";
var d = document.getElementById(this.title);
d.className = "w-clearfix slide displayblock";
d.style.zIndex=1;
});
})(marker, data);
}
循环中生成的原始标记有一个图像标记"images/marker.png"。单击时,我想用"images/maarker2.png"替换它,并切换它们。。如果能朝着正确的方向轻推,我们将不胜感激。。
setIcon
将用于切换标记,但复杂性在于添加事件侦听器和以干净的方式清除未选中的图标。在循环中,您可以将事件侦听器直接添加到标记中:
marker.addListener('click', function() {
this.setIcon(selectedSymbol);
});
你可以通过添加到一个类似@tkdave建议的数组来管理所有标记:
var markers = [];
function clearSelectedMarker() {
markers.forEach(function(marker) {
marker.setIcon(image);
});
}
for (var i = 0; i < beaches.length; i++) {
var beach = beaches[i];
var marker = new google.maps.Marker({
position: {lat: beach[1], lng: beach[2]},
map: map,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[3]
});
marker.addListener('click', function() {
clearSelectedMarker();
this.setIcon(selectedSymbol);
});
markers.push(marker);
}
对我来说,这也更可读。
https://jsfiddle.net/fpgya6Lq/1/
尝试更改单击处理程序中的标记图标。您只需要跟踪当前选定的标记并重置其他标记即可。
marker.setIcon( otherIcon );
https://developers.google.com/maps/documentation/javascript/reference#Marker
相关文章:
- 单击更改图标并通过javascript添加一个css类
- 使用Angular单击时更改特定图示符图标的颜色
- 通过单击同一图标使菜单出现和消失
- 如何制作Yii框架的linkHtmlOptions's的CGridView显示为图像图标,单击时会触发javas
- 单击时切换上下图示符图标的问题
- 单击扩展图标时打开popup.html
- Jdewit Timepicker 在文本和图标单击上显示小部件
- 单击标记时更改标记图标(在单击事件上),并在单击另一个标记时将其恢复为普通图标
- 单击图标后编辑信息
- 添加/单击c#asp.netmvc5后禁用和更改按钮图标
- 如何在单击按钮时为整个星形图标上色
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 如何在单击图标时渲染图标并调用函数
- 单击时如何更改汉堡菜单图标
- 单击href旁边的链接(删除图标)时删除href(Javascript帮助)
- 单击社交媒体图标(字体真棒)而未重定向到href
- 如果您单击文件夹图标而不仅仅是三角形图标,我如何让 jstree 关闭/打开
- 单击时使用 jquery 更改图标
- AngularJS在图标单击时隐藏引导日期选择器
- 如何在图标单击时激活拖放区