2015-10-11 46 views
-2
 jQuery.ajax({ 
     url: window.location.href, 
     type: "POST", 
     dataType: 'json', 
     success: function (res) { 
     data = res; 
     google.maps.event.addDomListener(window, 'load', speedTest.init); 
     }, 
     error: function(serverResp) {   // on ajax failure 
     console.log('5xx http status code or unexpected response content'); 
    } 
    }); 

我的代碼是如上述,如果我把 「google.maps.event.addDomListener(窗口, '負載',speedTest.init);」 中的 '成功:' 之外,機會是當加載地圖時數據爲空,但是當我在'成功:'中放入地圖時,地圖不會加載。那麼我該怎麼處理這件事呢?如何在ajax收到數據後載入地圖?

+0

顯示更多的代碼,但基本上你想要使用像谷歌地圖API調用加載通過JS的地圖......所以調用你的ajax,成功後通過JS導入Google Maps API,創建一個針對div的地圖對象,然後添加你的dom事件來加載(大多數人使用'idle'代替)。然後在那個空閒事件中,從你的數據中加載你的標記。 – Mayhem

回答

0

這個代碼初始化映射和設置標記在地圖上該標記的位置從阿賈克斯來到:

success: function (result) { 
       var json = eval('(' + result + ')'); 
       var map = new google.maps.Map(document.getElementById('map'), { 
        zoom: 10, 
        center: new google.maps.LatLng(31.320, 48.647), 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
       }); 
       var myMarker = new google.maps.Marker({ 
        position: new google.maps.LatLng(json.items[0].lat, json.items[0].lng), 
        draggable: true 
       }); 

       google.maps.event.addListener(myMarker, 'dragend', function (evt) { 
        document.getElementById('current').innerHTML = '<p> Current Lat: ' + evt.latLng.lat().toFixed(6) + ' Current Lng: ' + evt.latLng.lng().toFixed(6) + '</p>'; 
       }); 

        google.maps.event.addListener(myMarker, 'dragstart', function (evt) { 
         document.getElementById('current').innerHTML = '<p>Marker Dragging...</p>'; 
        }); 

        map.setCenter(myMarker.position); 
        map.setZoom(13); 
        myMarker.setMap(map); 
       } 
相關問題