添加非标准标记属性
Add a nonstandard marker property
为了允许用户在地图上删除正确的标记,我需要将每个标记与其数据存储ID相关联,这是一个字符串。我最初认为我可以将ID设置为整数,并使用标记的现有zIndex
属性。这就产生了下面创建每个物理标记的代码。(但是,唉,我无法访问整数ID值。)
var marker = new google.maps.Marker({ position: point, map: map , title: text, icon: icon, zIndex: ID});
我不知道如何添加一个属性到google.maps.Marker
的原型,将持有ID字符串,我想这是不可取的改变这样的原型,无论如何。那么这是如何做到的呢?我是否必须使用zIndex
属性作为包含实际ID作为对应于zIndex
值的元素的数组的索引?这也很尴尬。
假设您有一个locations
:
var markers = [];
for(var i in locations){
var loc = locations[i];
var marker = new google.maps.Marker({
position: loc.point
map: map,
title: loc.text,
icon: loc.icon
});
marker.id = loc.id;
markers.push(marker);
}
你可以这样做,因为每个标记只是一个普通的旧javascript对象。
然后你可以定义一个函数来隐藏带有特定id的标记:
function hideMarkersWithIdIn(ids){
var markersToRemove = markers.filter(function(marker){
return ids.indexOf(marker.id) > -1;
});
markersToRemove.forEach(function(marker){
marker.setMap(null);
});
}
可以像
一样使用hideMarkersWithIdIn([1,5,3])
相关文章:
- ES6非结构化中的计算属性-非结构化整体对象
- 获取非标准模式中的子字符串
- 使用Javascript为select标记添加非标准属性
- 在 angularjs 中适应非标准属性
- 替换/限制 CKEDITOR 中的非标准字符
- 树中节点的非标准检查
- 使用非标准REST API的Ember数据
- 使用非标准密钥长度调用CryptoJS.AES.encrypt/decrypt时,如何处理AES密钥
- 为什么在DOM中插入中间非标准元素会破坏flex框
- 解析非标准 JSON
- 如何从angular.js中的非标准目录加载部分文件?
- 我可以使用WebRTC接收非标准RTP流吗?
- 是否有可能本地扩展web API以允许CSSRule.cssText返回非标准css属性
- 使用非标准属性
- 使用jQuery自动完成与非标准选项
- Regexp:排除一个单词,但包含非标准标点符号
- 添加非标准标记属性
- 遍历JavaScript中的非标准对象属性
- 我可以通过Javascript获取非标准CSS属性的值吗
- 意见:在HTML中,可能存在重复的ID或非标准属性