2013-05-28 73 views
1

確定iv現在已經掙扎了近一個星期了,無論我嘗試了什麼,我都無法得到這個工作。jquery移動地圖標記mysql

我已經成功地管理運行計時器(setInterval的)從一個MySQL表中檢索值,這個文件是調用apijson.php,並將其返回的字符串和它的罰款。 (轉到輸出格)

進出口運行到的問題將其集成到谷歌地圖API的標記移動和平移到Coordinated剛檢索。

我希望我的意思是什麼即時通訊試圖實現。

<html> 
    <head> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map-canvas { height: 100% } 
    </style> 
    <script language="javascript" type="text/javascript" src="jquery.js"></script> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
    <script> 
function initialize() { 
    var myLatlng = new google.maps.LatLng(55.953429,-3.188095); 
    var mapOptions = { 
    zoom: 11, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'Marker' 
    }); 

    moveBus(map, marker); 
} 

function moveBus(map, marker) { 

    marker.setPosition(new google.maps.LatLng(0, 0)); 
    map.panTo(new google.maps.LatLng(0, 0)); 

}; 

google.maps.event.addDomListener(window, 'load', initialize); 

    </script> 
    </head> 
    <body> 
    <div id="map-canvas"></div> 
    <div id="output"></div> 

    <script id="source" language="javascript" type="text/javascript"> 
    setInterval(function() 
    { 

    $.ajax({          
     url: 'apijson.php',     //the script to call to get data   
     data: "Driver=<?php echo $_GET['Driver']; ?>",      //you can insert url argumnets here to pass to api.php for example "id=5&parent=6" 
     dataType: 'json',    //data format  
     success: function(data)   //on recieve of reply 
     { 
     var xx = data[7];    //latitude 
     var xy = data[8];   //longtude 
     var drv = data[2];   //driver 
     var clsn = data[1];   //id 
     marker.setPosition(new google.maps.LatLng(data[7], data[8])); 
    map.panTo(new google.maps.LatLng(data[7], data[8])); 

     $('#output').html("<b>Lat : </b>"+xx+"<b> Long : </b>"+xy+"<b> Driver : </b>"+drv+" ("+clsn+")");  //Set output element html 

     } 
    }, 5000); 

    }); 


    </script> 

    </body> 
</html> 

回答

0

您可以設置本地變量,即,你的函數initialize你試圖訪問你的Ajax success事件中內。如果它是全球性的,例如window.myTestMarker = /* .... */;,然後您可以使用success事件中的window.myTestMarker訪問它,則應該更接近您的預期結果。

+0

真的很抱歉,我剛剛開始使用ajax/javascript。我怎麼會把這個放到我的代碼中,iv試着把我的變量改到window.varname,現在我得到一個空白頁。我把我的頭髮拉出來。大聲笑。非常感謝您的幫助。 – THGTechGuy