尝试通过sql数据库中的经/纬度坐标间隔移动标记/地图。
function initialize() { var myLatLng = new google.maps.LatLng(41,14); var myOptions = { zoom: 16, center: myLatLng, scrollwheel: false, panControl: true, zoomControl: true, mapTypeControl: true, scaleControl: true, streetViewControl: true, overviewMapControl: true, mapTypeId: google.maps.MapTypeId.SATELLITE, } map = new google.maps.Map(document.getElementById('map_canvas'), myOptions); marker = new google.maps.Marker({ position: myLatLng, map: map, draggable: false }); } google.maps.event.addDomListener(window, 'load', initialize); function getCoords() { $.ajax({ url: "../ajaxscript.php", type: "POST", data: { foo : "bar" }, dataType: "text", success: function(returnedData) { alert(returnedData); moveMarkerMap(returnedData); } }); } function moveMarkerMap(newCoords) { var newLatLang = new google.maps.LatLng(newCoords); map.panTo(newLatLang); marker.setPosition(newLatLang); } window.setInterval(getCoords, 5000);
在moveMarkerMap()中设置新的google.maps.LatLng(14,41)会移动它,并且returnData显示在alert()中,但与moveMarkerMap()一起使用时标记不会移动
从ajax返回的字符串格式正确;(9.624672,7.242244)如alert()所示,因此不确定为什么它不起作用。
google.maps.LatLng构造函数使用两个数字作为参数。这行不通:
var newLatLang = new google.maps.LatLng(newCoords);
您需要将newCoords转换为两个数字。