Javascript 以使用ajax by php文件的google地图为例
我想在我的主页上显示谷歌地图。此映射由以下函数生成:Javascript 以使用ajax by php文件的google地图为例,javascript,php,ajax,google-maps,Javascript,Php,Ajax,Google Maps,我想在我的主页上显示谷歌地图。此映射由以下函数生成: function addressCode(id,concatenadoAMostrarEnMapa) { var geocoder; var map; geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(
function addressCode(id,concatenadoAMostrarEnMapa) {
var geocoder;
var map;
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-35.397, -60.644);
var mapOptions = {
zoom: 5,
center: latlng
}
map = new google.maps.Map(document.getElementById(id), mapOptions);
var address = concatenadoAMostrarEnMapa;
geocoder.geocode( {
'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
google.maps.event.addDomListener(window, 'load',addressCode);
}
此函数在主页面中定义。然后使用ajax调用php文件take_publications
,在此文件中打印以下代码:
$comillas='"' ;
echo " <div id='$mapa'";
echo "onload='addressCode('$mapa','$concatenadoAMostrarEnMapa')' style='position:relative; width:400px; height:400px;'> </div>";
echo "<script >addressCode('$mapa','$concatenadoAMostrarEnMapa');";
echo "setInterval(";
echo $comillas."addressCode('$mapa','$concatenadoAMostrarEnMapa')".$comillas;
echo ", 10000 );
</script >";
$comillas='”;
回声“;
echo“地址代码(“$mapa”,“$concatenadoAMostrarEnMapa”);";
回声“设置间隔(”;
echo$comillas.“地址代码(“$mapa”,“$concatenadoAMostrarEnMapa”)”$comillas;
回声”,10000);
";
$mapa
是一个带有标记的id
的字符串,此变量用作函数addressCode
中的参数$concatenadoAMostrarEnMapa
是函数addressCode
中用作参数的地址
问题是映射没有加载,或者说,ajax从php文件打印的脚本没有被执行
知道发生了什么吗
提前谢谢!我没有确切的答案,但您可以在您的网站上使用此代码
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
function initialize() {
var map_canvas = document.getElementById('map_canvas');
var map_options = {
center: new google.maps.LatLng(24.376202, 92.163641),
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(map_canvas, map_options)
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map_canvas"></div>
函数初始化(){
var map_canvas=document.getElementById('map_canvas');
变量映射_选项={
中心:新google.maps.LatLng(24.376202,92.163641),
缩放:18,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(地图画布,地图选项)
}
google.maps.event.addDomListener(窗口“加载”,初始化);
首先,div
元素没有onload
事件
如果确实希望在加载时执行脚本,请在窗口中添加对addressCode
的调用。onload
事件处理程序,如下所示:
window.onload = function(){
//do anything here
};
echo "<div id='".$mapa."'";
echo "style='position:relative; width:400px; height:400px;'></div>";
echo "<script>";
echo "window.onload = function(){ ";
echo "addressCode('".$mapa."','".$concatenadoAMostrarEnMapa."');";
echo "setInterval(";
echo "addressCode, 1000, '".$mapa."','".$concatenadoAMostrarEnMapa."'";
echo ");";
echo "};";
echo "</script >";
然后,关于使用setInterval
,如果您不需要IE<10个用户来查看您的网站,您可以:
setInterval(addressCode, 1000, "#yourmap", "nohablospanishenoughtounderstandthat");
否则,您应执行以下操作:
setInterval(function(){ addressCode("#yourmap","blabla"); }, 1000);
(请注意,我不支持使用setInterval
,您最好使用setTimeout
)
最后,停止使用register\u globals助手。它将永远不会帮助你,就像永远不会
"<div id='$mapa'"
毕竟,您的代码应该如下所示:
window.onload = function(){
//do anything here
};
echo "<div id='".$mapa."'";
echo "style='position:relative; width:400px; height:400px;'></div>";
echo "<script>";
echo "window.onload = function(){ ";
echo "addressCode('".$mapa."','".$concatenadoAMostrarEnMapa."');";
echo "setInterval(";
echo "addressCode, 1000, '".$mapa."','".$concatenadoAMostrarEnMapa."'";
echo ");";
echo "};";
echo "</script >";
echo”“;
回声“;
echo“window.onload=function(){”;
echo“addressCode(‘“$mapa.”、‘“$concatenadoAMostrarEnMapa.”)和“;”;
回声“设置间隔(”;
echo“addressCode,1000”,“$mapa.”,“$concatenadoAMostrarEnMapa.”;
回声“;”;
回声“};";
回声“;
经过一整晚的搜索,我找到了解决方案。我必须评估ajax带来的所有Scriptp,因为我正在插入新Scriptp,但页面已经加载了所有内容
谢谢!根据您的选择更改纬度和经度。如果您只有一张地图要显示,则此代码非常有用,但我有一个地图列表要显示。我有一个疑问-您的纬度/经度是否会因每次调用而有所不同?相同的调用,不同的参数谢谢您的解释!我会应用它,我是网页开发的新手。我试图使用您的代码,但它不起作用:/