Javascript 使用Gmaps、js插件不显示地图
我从PHP获取纬度和经度数据。下面的代码显示了我是如何创建JSON数据的Javascript 使用Gmaps、js插件不显示地图,javascript,json,google-maps,gmaps.js,Javascript,Json,Google Maps,Gmaps.js,我从PHP获取纬度和经度数据。下面的代码显示了我是如何创建JSON数据的 $arr = array(); while($row = mysqli_fetch_assoc($last_seen_query)){ $arr[] = array( "lat" => $row['lat'], "lang" => $row['lang'], "last_push" => $row['last_push'] ); }
$arr = array();
while($row = mysqli_fetch_assoc($last_seen_query)){
$arr[] = array(
"lat" => $row['lat'],
"lang" => $row['lang'],
"last_push" => $row['last_push']
);
}
$json = json_encode($arr);
echo $json;
这就是JSON结果
[{"lat":"-17.7462033","lang":"31.0718699","last_push":"2016-02-12 11:47:22"}]
然后在我要显示页面的网页上,这是代码
$('.last_seen_locale').on('click', function(){
var uuid = $('.id-ref').attr('data-uuid');
var map;
var mylat;
var mylong;
var locationCoordinates = [];
$.post('process_device.php', {uuid: uuid, displayMap:displayMap}, function(data){
//locationCoordinates = $.parseJSON(data);
for(var i = 0; i < data.length; i++){
mylat = data[i].lat;
mylong = data[i].lang;
}
map = new GMaps({
div: '.map',
lat: mylat,
lng: mylong,
zoom: 14
});
map.addMarker({
lat: mylat,
lng: mylong,
title: 'Muzinda',
click: function(e) {
alert('You clicked in this marker');
}
});
});
$('.last_seen_locale')。在('click',function()上{
var uuid=$('.id ref').attr('data-uuid');
var映射;
var mylat;
var mylong;
变量位置坐标=[];
$.post('process_device.php',{uuid:uuid,displayMap:displayMap},函数(数据){
//locationCoordinates=$.parseJSON(数据);
对于(变量i=0;i
所以,如果我在web浏览器中运行此代码,Firefox调试将显示以下错误:“未捕获异常:未定义纬度或经度”。
我不知道哪里出错了。非常感谢您的解决方案。问题可能是因为您的JSON响应将纬度和经度作为字符串,例如
“-17.7462033”
。谷歌地图需要的是浮点数,而不是字符串。我不知道gmaps.js插件是如何处理这些问题的,但你可能更幸运地将它们转换为数字,例如mylat=parseFloat(data[I].lat)
谢谢@duncan不幸的是,它不起作用。我非常感谢您的帮助。我已经尝试放置静态经纬度数据,它可以很好地显示地图和标记。我仍在挠头看错误。@duncanconsole.log(数据)的作用是什么
在您的AJAX回调中看起来如何?Hy Duncan我设法解决了这个问题,我意识到我应该将PHP查询文件放在其上。我的PHP和AJAX在同一页面上运行,这就是我在回调时出错的原因。AJAX代码非常完美。