2016-04-05 3 views
0

マップ上のマーカーをJSONフィードから表示しようとするとエラーが発生します。私はアドレスをたくさん取得してからロングを取得しようとしました&アドレスの緯度を地図上に配置しましたが、エラーが発生しました:コンソールで未定義のプロパティ 'geometry'を読み取ることができません。Googleマップ:未定義の 'ジオメトリ'プロパティを読み取ることができません

コード:

$.getJSON(apiUrl, function(data) { 
      var delay = 0, 
       p, 
       contentString, 
       iconBase; 

      _.each(data, function (value, key) { 

       var link = value.LinkUrl, 
        address = value.Address, 
        content = "<div class='info-address'>" + address + "</div> 
           <div class='info-message'>" + value.OpeningHoursMessage + "</div> 
           <div class='info-link'><a href='"+ value.LinkUrl +"'>Læs mere</a></div>"; 
       console.log("Adresse: " + address); 
       $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+address+', Danmark', null, function (data) { 


         p = data.results[0].geometry.location, 
         contentString = content, 
         iconBase = '/static/dist/img/'; 

         //console.log("Værdi" + p); 

         var latlng = new google.maps.LatLng(p.lat, p.lng); 
         var marker = new google.maps.Marker({ 
          position: latlng, 
          map: map, 
          animation: google.maps.Animation.DROP, 
          icon: iconBase + 'maps-marker.png', 
          url: link 
         }); 

         //If single lookup, then center to position 
         if(DOM.dataAddress.length) { 
          var pos = {lat: lat, lng: lng}; 
          map.setCenter(pos); 
         } 

         bindInfoWindow(marker, map, infowindow, contentString); 

         DOM.markersArray.push(marker); 


       }); 
      }); 
     }); 
+1

あなたのdata.resultsでconsole.logを試してみると、そこにないものを取得しようとしていますが、data.results [0]は未定義であると報告しています。それをデバッグして見て、私のお金はあなたがdata.results.geometry.locationを呼び出さなければならないということです。 – Eihwaz

+0

可能性のある[Google Maps api jsonでlatとlngをヌルにする]の可能な複製(http://stackoverflow.com/questions/33068216/get-the-lat-and-lng-sometime-is-null-with- google-map-api-json) – geocodezip

答えて

0

応答は、アレイaccording to the docsする必要がありますように見えます。あなたがリクエストしているアドレスの中に結果がないものがありますか?マップAPIにJSON要求を行った後に、チェックを入れる必要があります。

$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+address+', Danmark', null, function (data) { 
    if (data.results.length > 0) { 
     // set `p` and other code 
    } 
}); 
関連する問題