为什么我无法在 Google map V3 中显示多个标记,我正确获取了坐标,但未在 map 上显示。控制台也没有错误
- map_items[0] = 标题
- map 项[1] = 55.153766, 11.909180
- map_items[2] = 链接
- map_items[3] = 文本
如果我发出警报,所有这些都会正确显示。 示例
“标题”,“51.00150763193481,-2.5659284999999272”,“链接”,“文字”
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: new google.maps.LatLng(55.153766, 11.909180),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
for (var x = 0; x < temp.length; x++) {
if(temp[x][1]){
var map_items = temp[x];
var myLatlng = new google.maps.LatLng(map_items[1]);
var marker = new google.maps.Marker({
map: map,
position: myLatlng,
title: map_items[0]
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div class="google_marker"><a href="'+map_items[2]+'">'+map_items[0]+'</a><br /><p>'+map_items[3]+'</p></div>');
infowindow.open(map, marker);
});
}
}
}
最佳答案
google.maps.LatLng() 采用两个参数,而不是一个,因此:
var latlon = map_items[1].split(',');
var myLatlng = new google.maps.LatLng(parseFloat(latlon[0]), parseFloat(latlon[1]));
事实上,最好使用对象而不是数组,其中每个项目包含不同的数据类型,例如:
marker_data[0] = {
"lat": 55.153766,
"lon": 11.909180,
"title": "My Title",
"link": "http://stackoverflow.com"
}
//etc...
然后你可以像这样访问它:
var myLatlng = new google.maps.LatLng(marker_data[0].lat, marker_data[0].lon);
关于javascript - Google map v3 数组标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346882/