【问题标题】:Creating new markers from an array in Javascript google maps API在 Javascript 谷歌地图 API 中从数组创建新标记
【发布时间】:2010-01-18 12:22:57
【问题描述】:

我正在尝试在谷歌地图上添加标记以使用以下方式识别状态:

function initialize() {
 var map = new GMap2(document.getElementById("map_canvas"));
 map.setCenter(new GLatLng(-25.641526,134.472656), 4);
 map.setMapType(G_NORMAL_MAP);
 map.setUIToDefault();

var states =["-35.083236,138.503909","-24.607069,144.667969","-18.229351,133.417969","-24.686952,123.574219","-32.398516,146.953125","-35.46067,149.150391","-37.020098,143.701172","-42.682435,146.733398"]; 
  for (i = 0; i == states.length; i++) {
  var point = new GLatLng(parseFloat(states[i]));
  map.addOverlay(new GMarker(point));
  }
}

但是当我加载地图时没有标记出现(加载正常,正确居中并且地图类型正确)。我在这里做错了什么?

编辑:我把它改成了这个,现在它可以工作了:

var lats =[-35.083236,-24.607069,-18.229351,-24.686952,-32.398516,-35.46067,-37.020098,-42.682435];
var longs =[138.503909,144.667969,133.417969,123.574219,146.953125,149.150391,143.701172,146.733398];

for (i = 0; i <= lats.length; i++) {
var point = new GLatLng(lats[i],longs[i]);
map.addOverlay(new GMarker(point));

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    这看起来像是您的 for 循环中的错字。尝试如下:

    for (i = 0; i < states.length; i++) {
    

    还要注意 Tomas pointed out 的浮动问题。

    【讨论】:

    • 谢谢,我刚开始使用for 循环。
    • @Jonno:还要注意 Tomas 指出的浮动问题。这不仅仅是 for 循环。
    • 我现在指的是一些全局变量。如果这不是故意的,最好在循环本身中声明它 - for(var i = 0;
    【解决方案2】:

    您正在解析单个浮点值并尝试将其用作纬度和经度。

    这……

    var point = new GLatLng(parseFloat("-35.083236,138.503909"));
    

    不会解析两个不同的浮点值并将它们传递给 GLatLng。一种解决方案是拆分数组中的值:

    function initialize() {
     var map = new GMap2(document.getElementById("map_canvas"));
     map.setCenter(new GLatLng(-25.641526,134.472656), 4);
     map.setMapType(G_NORMAL_MAP);
     map.setUIToDefault();
    
     var states =[-35.083236, 138.503909, -24.607069, 144.667969, ...
     for (i = 0; i < states.length; i+=2) {
       var point = new GLatLng(states[i], states[i+1]);
       map.addOverlay(new GMarker(point));
    }
    

    }

    另请注意,正如 Daniel 指出的那样,您的 for 循环不正确。

    【讨论】:

    • 其实我错过了循环错误:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2015-05-09
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多