我无法从ajax获取坐标到谷歌地图脚本

时间:2017-09-28 18:52:50

标签: javascript php jquery ajax google-maps

这是我的places.php文件在这里,我从数据库中获取坐标,我通过回显它检查了这一点就好了,我和数据库的连接也很好。在这里,我创建了一个自动执行的函数,它在无限循环中重复自身,每当在数据库中更改或更新值时,我的标记位置也将更新。代码非常简单,但看起来我的ajax成功变量无效。

include 'connection.php';
$myque = mysqli_query($con, 'Select * from places where id=1');
$gtloc = mysqli_fetch_array($myque);
$lati = $gtloc['lati'];
$long = $gtloc['longi'];


echo lati.",".$long;
//echo $long;
}

在这里,我收到了ajax成功响应并将其分配给变量,但它不起作用。

插入直接坐标显示地图但我需要使标记响应数据库坐标而不刷新页面。将我的变量插入lat&很长一段时间,地图完全消失了

<!DOCTYPE html>
    <html>
     <head>
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>


    <script>

        function test(){ 
        //ajax call goes here

    $.ajax({
        url: "places.php",
        type: "GET",
        async: true,
        data:  {"id": 1},
        success : function(value){
                    //alert("RESPONSE");
                var data = value.split(",");
                var latitude  = (data[0]);
                var longitude  = (data[1]); 
            }      
        });


      window.setTimeout(function(){
        test();
      }, 1500);
        }
            $(document).ready(function(){
            test();
            });


      </script>
      <script>
          function initMap() {
      var uluru = {lat: latitude  , lng: longitude };
      var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 15,
      center: uluru
      });
      var marker = new google.maps.Marker({
      position: uluru,
      map: map
      });
      }
      </script>

      </head>
      <body>
    <script></script>
      <h2>My Places</h2>
      <div  id="map" style="height: 700px;width: 100%;"></div>
      <!--map script --> 
      <!-- / Map Script-->
      <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBYBZxCetgqbsCQU3mxZ622GwNdSglEVN4&callback=initMap"></script>
      </body>
  </html>

1 个答案:

答案 0 :(得分:0)

问题是那些是字符串值。尝试制作lat / long浮点变量......

var lat = parseFloat(latitude);
var long = parseFloat(longitude);

在你的例子中:

    success : function(value){
                //alert("RESPONSE");
            var data = value.split(",");
            var latitude  = (data[0]);
            var longitude  = (data[1]); 
        } 

只需像这样添加parseFloat:

        var latitude  = parseFloat(data[0]);
        var longitude  = parseFloat(data[1]); 

我认为它会解决它。