为了账号安全,请及时绑定邮箱和手机立即绑定

谷歌地图从ajax成功返回数据的经度/纬度移动标记

谷歌地图从ajax成功返回数据的经度/纬度移动标记

开满天机 2020-02-02 15:41:35
尝试通过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转换为两个数字。


查看完整回答
反对 回复 2020-02-02
?
桃花长相依

TA贡献1860条经验 获得超8个赞

如果其他人遇到此问题,请分割字符串:success:function(returnedData){// alert(returnedData); var coordsArray = returnData.split(“,”); moveMarkerMap(coordsArray [0],coordsArray [1]); } 

查看完整回答
反对 回复 2020-02-02
  • 2 回答
  • 0 关注
  • 510 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信