gpt4 book ai didi

javascript - map 标记不显示 (JavaScript/Google Maps API V3)

转载 作者:搜寻专家 更新时间:2023-11-01 04:55:17 25 4
gpt4 key购买 nike

我在使用 Google Maps API v3 显示 map 标记时遇到问题。我试图将它们全部保存在一个数组中,以使大量显示相对简单。目前, map 加载正常,但抛出错误 Uncaught TypeError: Object #<Object> has no method 'setValues'尝试绘制标记时。 setTimeout() 运行的每次迭代都会重复错误.任何建议将不胜感激。

这是使用的 JavaScript:

var map;
var markers = [
[
45.768366,
-108.5975760,
'Fitness 19'
],
[
45.785684,
-108.6144625,
'Granite Fitness'
],
... (more, syntactically correct)
[
45.7920092,
-108.4886232,
'Steepworld'
]
];
function mapinit() {
var conf = {
zoom: 11,
center: new google.maps.LatLng(45.7832856,-108.5006904),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('mapcont'),conf);
for(i in markers) {
window.setTimeout('mark('+i+')',i*200);
}
}
function mark(i){
google.maps.Marker({
position: google.maps.LatLng(markers[i][0],markers[i][1]),
animation: google.maps.Animation.DROP,
title: markers[i][2]
});
}

最佳答案

好吧,在 Chrome 的 JavaScript 控制台(我喜欢那个东西)中乱七八糟之后,我能够让它完美地工作。我将 mapinit()mark() 函数重写为:

function mapinit() {
var conf = {
zoom: 11,
center: new google.maps.LatLng(45.7832856,-108.5006904),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('mapcont'),conf);
for(i in markers) {
markers[i][3] = new google.maps.LatLng(markers[i][0],markers[i][1]);
window.setTimeout('mark('+i+')',i*200);
}
}
function mark(i){
new google.maps.Marker({
position: markers[i][3],
animation: google.maps.Animation.DROP,
map: map,
title: markers[i][2]
});
}

这里的主要区别在于标记的 position 变量由于某种原因似乎需要在外部变量中初始化,所以当我循环遍历 markers 数组时,我生成一个 google.maps.LatLng 作为每个标记的第四项。然后在 mark() 函数中引用它,标记成功显示。用于错开标记显示的 setTimeout 效果非常好,尤其是在脚本和 map 加载速度更快的情况下。

查看最终结果on my inClass site

关于javascript - map 标记不显示 (JavaScript/Google Maps API V3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9089479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com