2

まず第一に、これに答えることを検討してくれてありがとう:)大いに感謝します!

次のコードを使用してマップを作成しましたが、これは完全に機能します。

    function initialize() {

          var mapOptions = {
          zoom: 5,
          center: new google.maps.LatLng(48.160, -6.832),
          disableDefaultUI: true,
          mapTypeId: google.maps.MapTypeId.ROADMAP
          };

           map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
  setMarkers(map, cities);
 }

しかし、次に、この配列の各都市にマーカーが必要です(もちろん絶対に必要な場合を除いて、この正確なコードが私が抱えていた別の問題を解決するため、これを変更することを提案しないでください):

 var cities = {
   'Groningen':  [ 53.216723950863425, 6.560211181640625, 7],
    'San Francisco': [ 34.01131647557699, -118.25599389648437, 5],
    'New York City': [ 40.7143528, -74.0059731, 3]

 };     

そして、私はこのコードを使用して実際のマーカーを配置しています(これは機能しない部分です):

  function setMarkers(map, locations) {
   // Add markers to the map

  for (var i = 0; i < cities.length; i++) {
          var data = cities [i]
          var marker = new google.maps.Marker({
              position: new google.maps.LatLng (data[0], data[1]),
              map: map,
              icon: image,
              title: 'test',
          });
      }
 }
4

1 に答える 1

5

citiesは配列ではなくオブジェクトなので、使用できません

for (var i = 0; i < cities.length; i++) {
    //...
}

代わりにこれを使用してください

for (var key in cities) {
    var data = cities[key];
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng (data[0], data[1]),
        map: map,
        icon: image,
        title: 'test',
    });
}
于 2013-01-13T22:30:12.273 に答える