php InvalidValueError:setCenter:not a LatLng or LatLngLiteral with finite coordinates:in property lat:NaN is not an accepted value

yzckvree  于 5个月前  发布在  PHP
关注(0)|答案(1)|浏览(54)

我通过谷歌Map与显示2点在Map上的目的,一个点是已经预定义的,另一个点将使用数据库坐标的Map。
问题是,即使数据库坐标通过parseFloat函数浮动,google maps也会将这些值标识为NaN,因为alert工作得很好。
数据库名称:

CREATE DATABASE DB_USUARIOS;
USE DATABASE DB_USUARIOS;
CREATE TABLE TB_USERS(
    USU_CODIGO INT PRiMARY KEY AUTO_INCREMENTE,
    USU_LATITUDE FLOAT(10,7) NOT NULL,
    USU_LONGITUDE FLOAT(10,7) NOT NULL
);

字符串

<?php
        	$consulta=$MySQLi->query("SELECT * FROM TB_USUARIOS");
        	$resultado = $consulta->fetch_assoc();
        ?>
        <html>
           <head>
           </head>
           <body>
              <div id="map"> </div>
              <script>
                 var latitude_cli = <?php echo $resultado['USU_LATITUDE'];?>; 
                 var longitude_cli = <?php echo $resultado['USU_LONGITUDE'];?>; 
                 alert(`${parseFloat(longitude_cli)} `);
                 alert(`${parseFloat(latitude_cli)} `);
        
                 function initMap() {
                    var ponto1 = newgoogle.maps.LatLng(parseFloat(latitude_cli),parseFloat(longitude_cli));
                    var ponto2 = new google.maps.LatLng(36.522793, -83.212665);
        
                    var map = new google.maps.Map(document.getElementById('map'),
                    {zoom: 4, center: ponto2});
        
                    var marker = new google.maps.Marker({position: ponto1, map: map, 
                    title:"Produto"});
        
                    var marker1 = new google.maps.Marker({position: ponto2, map: 
                    map,title:"Você"});
                    
                 }
              </script>
              <script async defer
                 src="https://maps.googleapis.com/maps/api/js?callback=initMap">
    </script>
           </body>
        </html>

vbopmzt1

vbopmzt11#

当您注销latitude_clilongitude_cli时,您的坐标是什么样子?请确保它们是数字或字符串。下面的代码片段可以正常工作:

<html>

<head>
</head>

<body>
  <div id="map" style="height:400px;width:400px"> </div>
  <script>
    function initMap() {
      var ponto1 = new google.maps.LatLng(parseFloat("36.5"), parseFloat("-83.2"));
      var ponto2 = new google.maps.LatLng(36.522793, -83.212665);

      var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: ponto2
      });

      var marker = new google.maps.Marker({
        position: ponto1,
        map: map,
        title: "Produto"
      });

      var marker1 = new google.maps.Marker({
        position: ponto2,
        map: map,
        title: "Você"
      });

    }
  </script>
  <script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap">
  </script>
</body>

</html>

字符串

相关问题