如何在Google Maps中更新一组标记
How to update a set of markers in Google Maps?
我试图从客户端的表单输出更新我在地图中显示的标记集。
我被困的地方是在ShowUser()函数中,最后一条语句是setMarkers(map, stations),我希望标记被改变,但它似乎不起作用。任何帮助吗?
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(34.7291, 0.3379)
}
var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
setMarkers(map, stations);
}
var stations = [
['Rafa',40.0,-6.0,0],
['Josh',38.5,-1.0,1]
];
function setMarkers(map, locations) {
var image = ['circle_orange.png','circle_blue .png'];
for (var i = 0; i < locations.length; i++) {
var stations = locations[i];
var myLatLng = new google.maps.LatLng(stations[1], stations[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image[stations[3]],
title: stations[0],
zIndex: stations[3],
optimized: false
});
var infowindow = new google.maps.InfoWindow({
content: "No data available"
});
google.maps.event.addListener(marker, 'mouseover', function() {
infowindow.setContent("We can include any station information, for example: Lat/Long: "+ stations[1]+" , "+stations[2]);
infowindow.open(map, this);
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
function showUser(str) {
if (str != ""){
var stations = [
['Rafa',50.0,-6.0,0],
['Josh',58.5,-1.0,1]
];
document.getElementById("txtHint").innerHTML=stations;
setMarkers(map, stations);
}
}
正如Molle博士所指出的,问题出在map变量上。它是在initialize()函数内部初始化的,这意味着它不是一个全局变量。Chrome调试器工具是我用来发现问题的方式。下面是一个工作示例的链接,以供参考:
示例相关文章:
- 如何通过数组更新角度子范围
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 如何创建独立于数组更新的组件列表
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 在一组旋转器中,当一个旋转器的值发生变化时,更新其他旋转器的最大值
- 如何在Google Maps中更新一组标记
- 一次更新多个数组元素
- 避免整个页面重新加载(!?),而导航只更新相关的部分在一组网页
- Mongodb:一次更新同一文档中多个数组的元素
- 用另一个数组更新一个数组(删除和添加值)