当mysql提供十进制纬度和经度时,谷歌地图显示错误的地图


google map showing wrong map when decimal latitude and longitude is provided from mysql

我注意到,当提供来自字段类型为deciel或float的mysql数据库的值时,谷歌地图不会显示正确的地图。接受varchar。

源代码浏览器显示正确的lat和long值,没有空格或其他问题。我试过的Decimal没有找到正确的地图

           $lat= $row['latitude']; (decimel from mysql, does not work)
        $long=$row['longitude'];

    $lat=15.624256;(works)
    $long=73.7943410;

   <script>
   function initialize() {
    var mapCanvas = document.getElementById('map');
    var mapOptions = {
    center: new google.maps.LatLng(<?php echo $lat.', '.$long; ?>),
      zoom: 16,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(mapCanvas, mapOptions)
  }
  google.maps.event.addDomListener(window, 'load', initialize);
</script>

检查数据。还要进行足够的验证,以确保您拥有合理的坐标和适当的精度。查询应将null替换为0。

在生成的html页面中,检查html和javascript的数据格式是否正确。

编写一个伪php来了解数据

$lat= $row['latitude'];
$long=$row['longitude'];
echo '<p>'.$lat.','.$long.'</p>'

提示:最好避免使用$long变量名。使用$经度代替