尝试通过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()所示,因此不确定为什么它不起作用。
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
google.maps.LatLng构造函数使用两个数字作为参数。这行不通:
var newLatLang = new google.maps.LatLng(newCoords);
您需要将newCoords转换为两个数字。
桃花长相依
TA贡献1860条经验 获得超8个赞
如果其他人遇到此问题,请分割字符串:success:function(returnedData){// alert(returnedData); var coordsArray = returnData.split(“,”); moveMarkerMap(coordsArray [0],coordsArray [1]); }
添加回答
举报
0/150
提交
取消