提前道歉,因为这看起来有点复杂。
我有一个谷歌地图标记数组,我的标记被添加到名为markersArray
。
每个标记存储的详细信息是纬度,经度,标题,说明。
使用下面的代码,它会在我的地图上点击标记时运行
google.maps.event.addListener(marker, 'click', function(mll) {
console.log(mll);
console.log(markersArray);
var html= "<div style='color:#000;background-color:#fff;padding:5px;width:150px;'><p></p></div>";
iw = new google.maps.InfoWindow({content:html});
iw.open(map,marker);
});
mll
显示实际标记的日志,markersArray
只显示数组中的标记列表。
我注意到的是markersArray
中存储的数据没有被带入实际的标记本身。
有没有办法做到这一点?
如果没有办法使用Javascript从title
中找到markersArray
,具体取决于您将在下图中看到的latLng
值。
我截断了运行Marker Click Function时收到的内容
使用AngularJS添加标记如下:
$scope.createmarker = function () {
geocoder.geocode({
'address': selectedItem.gps
}, function (response, status) {
geocode_results = new Array();
geocode_results['status'] = status;
top_location = response[0];
var lat = Math.round(top_location.geometry.location.lat() * 1000000) / 1000000;
var lng = Math.round(top_location.geometry.location.lng() * 1000000) / 1000000;
geocode_results['lat'] = lat;
geocode_results['lng'] = lng;
geocode_results['l_type'] = top_location.geometry.location_type;
marker = new google.maps.Marker({
icon: mapIcon,
position: new google.maps.LatLng(lat, lng),
map: map,
title: selectedItem.title
});
markersArray.push(marker);
console.log(markersArray);
console.log(marker);
});
};
答案 0 :(得分:0)
使用title
代替mll
google.maps.event.addListener(marker, 'click', function(title) {
console.log(mll);
console.log(markersArray);
var html= "<div style='color:#000;background-color:#fff;padding:5px;width:150px;'><p></p></div>";
iw = new google.maps.InfoWindow({content:html});
iw.open(map,marker);
});