首先感谢您考虑回答这个问题:)非常感谢!
我使用以下代码创建了一个地图,这非常有效。
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(48.160, -6.832),
disableDefaultUI: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
setMarkers(map, cities);
}
但是我想要在这个数组中的每个城市都有标记(请不要建议更改它,因为这段代码解决了我遇到的另一个问题,除非当然绝对必要):
var cities = {
'Groningen': [ 53.216723950863425, 6.560211181640625, 7],
'San Francisco': [ 34.01131647557699, -118.25599389648437, 5],
'New York City': [ 40.7143528, -74.0059731, 3]
};
我正在使用此代码放置实际标记(这是不起作用的部分):
function setMarkers(map, locations) {
// Add markers to the map
for (var i = 0; i < cities.length; i++) {
var data = cities [i]
var marker = new google.maps.Marker({
position: new google.maps.LatLng (data[0], data[1]),
map: map,
icon: image,
title: 'test',
});
}
}
答案 0 :(得分:5)
cities
不是数组而是对象,因此您无法使用
for (var i = 0; i < cities.length; i++) {
//...
}
改为使用
for (var key in cities) {
var data = cities[key];
var marker = new google.maps.Marker({
position: new google.maps.LatLng (data[0], data[1]),
map: map,
icon: image,
title: 'test',
});
}