Javascript 使用循环的google地图中的位置名称

Javascript 使用循环的google地图中的位置名称,javascript,html,google-maps,loops,quotes,Javascript,Html,Google Maps,Loops,Quotes,我正在编写一个代码,使用谷歌的api在地图上绘制多个位置。坐标、名称和MMSI编号存储在XML文件中,并导入到javascript中 这是我要说的代码的一部分: for(i=0; i<x; i++) { var locations = [ ['MMSI', 50.26835, 50.45563, 1], ['MMSI', 50.29435, 50.44523, 2], ['MMSI', 50.09399, 50

我正在编写一个代码,使用谷歌的api在地图上绘制多个位置。坐标、名称和MMSI编号存储在XML文件中,并导入到javascript中

这是我要说的代码的一部分:

    for(i=0; i<x; i++)
      {
      var locations = [
        ['MMSI', 50.26835, 50.45563, 1],
        ['MMSI', 50.29435, 50.44523, 2],
        ['MMSI', 50.09399, 50.40548, 3]
       }
并且需要地图标记来显示这些数字,而不是简单的MMSI

但我不知道如何实现这一点,因为该程序不会在我每次尝试时都运行,而且谷歌的api只能使用引号,而不能使用变量

我很确定这个问题有一个简单的答案,我很抱歉不得不问这么一个愚蠢的问题,但我似乎在任何地方都找不到答案,也无法自己找到答案

提前感谢您的帮助


另外,如果我使用了错误的术语,我也很抱歉,我仍然在学习这种语言,我不知道我说的是否正确。

好的,这似乎有效,我删除了您的ajax调用以加载XML并将XML粘贴到小提琴中。另外,我不是XML专家,所以对于第一部分可能有一个更简单的方法


基本上,我将所有船舶都放在一个对象中,而不是为每个船舶创建一个新变量,这将使一切更干净,您仍然可以访问其中的每一艘船舶,只需使用船舶['number',而不是船舶编号。

您是否介意为您的当前工作状态设置一个新的变量,以便我们可以更好地帮助您,这些数字是从哪里来的163474209483705245?现在这些只是随机数字,但一旦完成,它们将是MMSI数字。这里是JSFIDLE链接:不确定我是否正确,但我希望这有帮助。我可以看看xmlhttp.responseXML吗?我指的是XML
    var MMSI1 = 163474;
    var MMSI2 = 209483;
    var MMSI3 = 705245;

    etc, etc...
var x= "<Vessels><Ship><MMSI>431000527</MMSI><CALLSIGN>SLBM</CALLSIGN><LATITUDE>35.4150</LATITUDE><LONGITUDE>139.725</LONGITUDE><DESTINATION>JP SGM</DESTINATION></Ship><Ship><MMSI>244660180</MMSI><CALLSIGN>PD8027</CALLSIGN><LATITUDE>52.4066</LATITUDE><LONGITUDE>4.82345</LONGITUDE><DESTINATION>lalallal</DESTINATION></Ship></Vessels>";

var xmlDoc = new DOMParser().parseFromString(x,'text/xml');
var allShips = xmlDoc.getElementsByTagName("Ship");
console.log(xmlDoc.getElementsByTagName("Ship")[0].getElementsByTagName("MMSI")[0].childNodes[0].text)
var ships = [];

for (var i = 0, l = allShips.length; i < l; i++) {
    ships.push({
    name: 'MMSI' + (i + 1).toString(),
    originalName: allShips[i].getElementsByTagName("MMSI")[0].childNodes[0].nodeValue,
    latitude: allShips[i].getElementsByTagName("LATITUDE")[0].childNodes[0].nodeValue,
    longitude: allShips[i].getElementsByTagName("LONGITUDE")[0].childNodes[0].nodeValue
    })   
}



        var map = new google.maps.Map(document.getElementById('map-canvas'), {
          zoom: 2 ,
          center: new google.maps.LatLng(0, 0),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });

        var infowindow = new google.maps.InfoWindow();

      var marker, i;

        for (i = 0; i < ships.length; i++) {
          marker = new google.maps.Marker({
            position: new google.maps.LatLng(ships[i].latitude, ships[i].longitude),
            map: map
          });

          google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
              infowindow.setContent(ships[i].name);
              infowindow.open(map, marker);
            }
          })(marker, i));
        }