Javascript 从嵌套的google maps标记数组获取标记位置
I应用程序中的一个功能,可在单击按钮时向地图添加标记,该标记还允许用户以可编辑元素的形式输入信息,并可根据请求删除标记Javascript 从嵌套的google maps标记数组获取标记位置,javascript,arrays,google-maps,phonegap-build,Javascript,Arrays,Google Maps,Phonegap Build,I应用程序中的一个功能,可在单击按钮时向地图添加标记,该标记还允许用户以可编辑元素的形式输入信息,并可根据请求删除标记 var markers = []; counter = 0; function addMarker(position) { counter++; var bridgeIcon = new google.maps.MarkerImage("img/map_markers/warning_map_marker.png", null, null, null);
var markers = [];
counter = 0;
function addMarker(position) {
counter++;
var bridgeIcon = new google.maps.MarkerImage("img/map_markers/warning_map_marker.png", null, null, null);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(position.coords.latitude,position.coords.longitude),
map: map,
title: "Hello!!",
draggable: true,
animation: google.maps.Animation.DROP,
icon: bridgeIcon,
id: counter
});
markers.push(marker);
//Content structure of info Window for the Markers
var contentString = '<div class="marker-info-win">' +
'<h3>Marker Information</h3>' +
'<div class="warning-title" contenteditable="true" data-text="Warning Title"/></div>'+
'<i class="fa fa-pencil"></i>' +
'<div class="warning-additional-info" contenteditable="true" data-text="Warning Additional Information"></div>'+
'<i class="fa fa-pencil"></i>' +
'<br/><button id="deleteButton" name="remove-marker" class="remove-marker" title="Remove Marker" data-id="'+ counter +'">Remove Marker</button></div>';
//Create an infoWindow
var infowindow = new google.maps.InfoWindow({
content: contentString
});
//add click event listener to marker which will open infoWindow
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,this); // click on marker opens info window
});
google.maps.event.addListener(infowindow, 'domready', function () {
var button = document.getElementById('deleteButton');
var id = parseInt(button.getAttribute('data-id'));
button.onclick = function() {
deleteMarker(id);
};
});
}
function deleteMarker(markerId) {
for (var i=0; i<markers.length; i++) {
if (markers[i].id === markerId) {
markers[i].setMap(null);
}
}
}
使用纯数据创建另一个数组,并放置所需的所有信息。因此,您将得到如下结果:
var markersData = []
在循环内创建标记时,请添加索引:
var marker = new google.maps.Marker({
position: latlng,
map: googleMap,
title: 'Hello World!',
labelContent: "A",
labelAnchor: new google.maps.Point(3, 30),
labelClass: "labels",
labelInBackground: false,
index: i
});
markersData.push(marker);
然后在处理程序中,您可以通过
google.maps.event.addListener(marker, 'click', function () {
var info = markersData[this.index];
...
});
var marker = new google.maps.Marker({
position: latlng,
map: googleMap,
title: 'Hello World!',
labelContent: "A",
labelAnchor: new google.maps.Point(3, 30),
labelClass: "labels",
labelInBackground: false,
index: i
});
markersData.push(marker);
google.maps.event.addListener(marker, 'click', function () {
var info = markersData[this.index];
...
});