存储谷歌地图标记并从中选择特定标记
Storing Google Map Markers and Selecting a specific marker from it
我有一个网页,它接收带有使用 $.getJSON
listing_id, lat, lng
值的 AJAX 数据。 回调函数采用这一系列值,并为每组listing_id, lat, lng
创建一个 Google 地图标记。然后将标记推入数组markers
,并将其listing_id
推入数组markersListingId
。
var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
var marker = new google.maps.Marker({
position: latLng,
icon: base_url + 'images/template/markers/listing.png',
});
markers.push(marker);
markersListingId.push(json[i].listing_id);
问题:当我想选择与特定listing_id
相对应的特定标记时,就会出现问题,尤其是在更复杂的情况下,标记被删除并添加到markers
数组中。
我可以让 for 循环遍历数组中所有标记的 id markersListingId
然后使用循环的索引i
markers
数组中获取标记,但这会使跟踪变得非常棘手。
var id_to_select = 1234;
for(var i = 0; i < markersListingId; i++) {
if(markersListingId[i] == id_to_select) {
markers[i].setMap(null);
}
}
问:如何存储标记,以便我可以使用其listing_id
轻松选择特定标记?
创建标记时,可以使用哈希表而不是使用数组吗?
http://jsfiddle.net/j9J8x/
var markers = {};
//id goes in place of 1234
n = 1234;
markers[n] = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(0,0)
});
s = '2234'
markers[s] = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(20,0)
});
google.maps.event.addListener(map, 'click', function(event) {
k = 1234;
markers[k].setMap(null);
markers['2234'].setMap(null);
});
}
相关文章:
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- Javascript字母选择没有'我不能在谷歌浏览器上工作
- 在谷歌地图V3上选择多边形
- 根据单个用户的决定禁用谷歌标签管理器(选择退出)
- 如何检测项目是否在谷歌地图API自动完成列表中选择
- 谷歌地图 - 用户选择不允许位置
- 谷歌驱动器的谷歌选择器
- 有没有一个日历可以在谷歌关闭库中选择一系列日期
- 谷歌地图api 3使用覆盖选择地点的类型
- 谷歌Chrome日期选择器事件
- 如何更改谷歌翻译在编码中选择语言文本
- 错误:谷歌云端硬盘选择器今天停止加载
- 从谷歌文档中获取选择
- 当用户点击条形图时,从列表中选择谷歌图表
- 从FF和谷歌浏览器的像素坐标中选择
- 为谷歌浏览器创建拖动选择屏幕截图
- 切换谷歌分析 - 选择退出/选择加入
- 谷歌图表:无效的列标签 |类别筛选器作为列选择器
- 自动选择谷歌地理图表的区域
- 使用JQuery或Javascript选择谷歌地图的下拉菜单