Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当mysql提供十进制纬度和经度时,谷歌地图显示错误的地图_Javascript_Php - Fatal编程技术网

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

Javascript 当mysql提供十进制纬度和经度时,谷歌地图显示错误的地图,javascript,php,Javascript,Php,我注意到google maps在提供字段类型为decimel或float的mysql数据库中的值时没有显示正确的映射。接受varchar 源浏览器显示正确的lat和long值,没有空格或其他问题。我试过的方法都不正确 $lat= $row['latitude']; (decimel from mysql, does not work) $long=$row['longitude']; $lat=15.624256;(works) $lo

我注意到google maps在提供字段类型为decimel或float的mysql数据库中的值时没有显示正确的映射。接受varchar

源浏览器显示正确的lat和long值,没有空格或其他问题。我试过的方法都不正确

           $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>
$lat=$row['latitude'];(mysql中的十进制,不起作用)
$long=$row[‘经度’];
$lat=15.624256;(工程)
$long=73.7943410;
函数初始化(){
var mapCanvas=document.getElementById('map');
变量映射选项={
中心:新的google.maps.LatLng(),
缩放:16,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(mapCanvas,mapOptions)
}
google.maps.event.addDomListener(窗口“加载”,初始化);

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

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

编写一个虚拟php来了解数据

$lat= $row['latitude'];
$long=$row['longitude'];
echo '<p>'.$lat.','.$long.'</p>'
$lat=$row['latitude'];
$long=$row[‘经度’];
回显“”.$lat.,“$long.”

'

提示:最好避免使用$long变量名。改用$longitude

我们可以看看您的数据库模式吗?使用正确的数据类型等。创建表
分支
id
int(10)无符号非空自动增量,
location
varchar(45)非空,
address
varchar(500)非空,
googlelink
varchar(500)非空,
user\u id
int(10)无符号非空,
active
int(10)不为空,
delete\u data
int(10)无符号不为空,
delete\u用户id
int(10)无符号不为空,
latitude
varchar(9)不为空,
varchar(9)不为空,
mylongitude
decimal(10,6)不为空,
mylatitude
decimal(10,6)不为空,主键(
id
)ENGINE=InnoDB AUTO_INCREMENT=7默认字符集=latin1行格式=动态;我添加了decimel和varchar用于测试。。。将$loang更改为$LONGITUDE后仍然不起作用更改变量名只是一种“良好做法”。。。但我的建议是将列约束放在DB中。检查此项以获取有效值