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

标签 javascript google-maps

我在使用 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/

相关文章:

javascript - 我如何使用javascript在最后一个div上添加类,它的长度是动态变化的

javascript - 使用删除运算符删除变量

css - Google Maps API 在 Safari 中杀死 CSS 动画

Android 谷歌地图 v2 导航

javascript - 如何在元素内使用 Javascript 绘制正方形?

javascript - Bootstrap scrollspy 仅在第二次单击时获取高度偏移

javascript - 我需要帮助将自定义 JavaScript 添加到除其中一个之外的所有网站页面

android - 谷歌地图溢出就像 foursquare 应用程序一样

javascript - 如何在谷歌地图 API 中的方向多段线顶部显示交通层

java - 填充 map Overlay