2013-05-28 40 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