Google Maps API v3:从数组中添加标记不能工作
Google Maps API v3: Adding markers from an array doesn't work
首先感谢您考虑回答这个问题:)非常感谢!
我用下面的代码创建了一个映射,它工作得很好。
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',
});
}
}
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',
});
}
相关文章:
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- 动态添加的标记不会'无法正确使用日期选择器
- 添加@javascript标记时,Cucumber中的HTTP身份验证失败
- 在 Javascript 生成的列表中,如何将自定义属性添加到 标记
- 如何在添加新标记和图层之前清除所有标记和图层的传单地图
- 如何在Phonegap中进行AJAX调用时添加加载屏幕
- 如何将多段线添加到标记阵列中
- 在添加新标记之前删除以前的标记
- 如何隐藏或删除Ngmap中动态添加的标记
- 在AngularJS模型中添加/删除标记
- 根据谷歌 Api v3 书/也用一个按钮添加一个标记
- 如何在加载前添加加载动画
- 通过添加自动标记库来了解 meteorjs 范围
- 在谷歌地图中添加新标记之前,先删除以前的标记
- 如何在网页加载之前添加加载页面
- 将数据属性添加到标记并使用 JQuery 检索它
- 将声音添加到标记数组 - 谷歌地图JavaScript
- 将侦听器添加到标记在循环中不起作用
- 在加载后添加预标记;t生效
- Google Maps API不会加载正确的中心位置,而是在最后添加的标记区域加载