在ajax成功时,未加载谷歌地图。数据库表每20秒更新一次,ajax方法每30秒读取一次。 ajax方法正常工作。它显示了控制台上的响应。地图div已加载,但地图未加载。请帮忙。
Ajax调用页面。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"> </script>
<script src="http://maps.googleapis.com/maps/api/js?key=API_KEY&libraries=geometry"></script>
<div id="map" style="height:500px;width:100%;" ></div>
<script>
var response;
var ajax_call = function() {
$.ajax({
url: 'ajaxRequest.php',
data: "",
dataType: 'json',
success: function(data)
{
response = data;
console.log(response);
initialize();
}
});
};
var interval = 5000;
setInterval(ajax_call, interval);
var myCenter=new google.maps.LatLng(41.669578,-0.907495);
var marker;
var map;
var mapProp;
function initialize()
{
mapProp = {
center:myCenter,
zoom:15,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
setInterval('mark()',5000);
}
function mark()
{
map=new google.maps.Map(document.getElementById("map"),mapProp);
marker=new google.maps.Marker({
position:new google.maps.LatLng(response)
});
marker.setMap(map);
map.setCenter(new google.maps.LatLng(response));
marker.setAnimation(google.maps.Animation.BOUNCE);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
这是ajaxRequest.php页面
<?php
include "db_connect.php";
$sql="SELECT * FROM temperature_details ORDER BY id DESC LIMIT 1 ";
$result=mysql_query($sql);
$firstrow = mysql_fetch_assoc($result);
$outPut = $firstrow['latitude'].','. $firstrow['longitude'];
echo json_encode($outPut);
?>
答案 0 :(得分:1)
你是json编码一个字符串,而不是一个对象或数组。 LatLng不知道如何处理你的字符串。
尝试:
<?php
include "db_connect.php";
$sql="SELECT * FROM temperature_details ORDER BY id DESC LIMIT 1 ";
$result=mysql_query($sql);
$firstrow = mysql_fetch_assoc($result);
$outPut = array($firstrow['latitude'], $firstrow['longitude']);
echo json_encode($outPut);
?>
为你的PHP,
和
google.maps.LatLng(response[0], response[1])
而不是:
google.maps.LatLng(response)
在你的javascript中。