谷歌地图标记不是递增数组
Google Maps markers not incrementing array
我找遍了,但找不到答案。我有一个地图,当我点击时,它会在我点击的地方添加标记。我将这些标记推入数组,但当我做一个标记时,似乎覆盖了之前在数组中的标记,而不是向数组添加另一个索引。无论地图上有多少标记,数组总是像这样。下面是代码
addLatLng: function(event) {
var path = this.poly.getPath();
var markers = [];
path.push(event.latLng);
this.calcDistance(path);
var marker = new google.maps.Marker({
position: event.latLng,
title: '#' + path.getLength(),
map: this.map
});
markers.push(marker);
console.log(markers);
console.log(marker);
// debugger;
function removeMarkers(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
markers = [];
}
$('#btn-clear-map').on('click', function(event) {
event.preventDefault();
removeMarkers(null);
});
$('#btn-clear-point').on('click', function(event) {
event.preventDefault();
markers[markers.length -1].setMap(null);
});
},
这是骨干视图的一部分,如果有区别的话。我只是不知道为什么当我推一个标记时,它似乎覆盖了已经在那里的标记。
编辑:好吧,我刚刚明白了为什么,每次我点击做一个新的标记,它是重置标记数组。有什么聪明的方法可以绕过这个问题吗?
问题是您在每次调用addLatLng
方法时都重新声明markers
数组(您也是新的事件处理程序并每次创建removeMarkers
函数和闭包)
Backbone.View.extend({
initialize: function() {
this.markers = [];
},
events: {
'click #btn-clear-map': 'removeMarkers',
'click #btn-clear-point': 'clearPoint',
},
render: function() {},
addLatLng: function(event) {
var path = this.poly.getPath();
path.push(event.latLng);
this.calcDistance(path);
var marker = new google.maps.Marker({
position: event.latLng,
title: '#' + path.getLength(),
map: this.map
});
this.markers.push(marker);
},
removeMarkers: function(event) {
event.preventDefault();
for (var i = 0; i < this.markers.length; i++) {
this.markers[i].setMap(null);
}
this.markers = [];
},
clearPoint: function(event) {
event.preventDefault();
this.markers[this.markers.length - 1].setMap(null);
}
});
相关文章:
- 如何创建一个谷歌地图地理坐标数组
- 尝试从JSON数组在谷歌地图中制作路径
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 如何在地图框中的层数组中循环以侦听单击事件
- 如何在谷歌地图API中使用坐标数组绘制多边形
- 使用Knockout.js的数组方法将地图标记添加到Google地图
- 如何用数组而不是值正确填充谷歌图表(地图)
- 将谷歌地图 api latLng 坐标存储到 js 数组
- 谷歌地图API v3动态标记,帮助使数组工作
- PHP 在谷歌地图上显示多维数组值
- 在Javascript和EaselJS中使用3x3数组,偏移分块图块地图的最佳方法是什么
- 谷歌地图从数组中编辑多个标记
- 从谷歌地图中的数组绘制形状
- 如何从谷歌地图API返回的结果数组中提取城市名称
- 将声音添加到标记数组 - 谷歌地图JavaScript
- 谷歌地图 API 无法从数组中设置折线
- 使用地图时使用扩展运算符扩展数组
- WordPress php 数组到 js 数组以在谷歌地图中使用
- 谷歌地图.传递给函数的标记数组
- 添加所有谷歌地图标记后数组丢失