谷歌地图api和php集成问题
我有一个谷歌地图显示良好(谷歌地图API v3-见下面的代码)。代码最初插入到main index.php中,如下所示:-谷歌地图api和php集成问题,php,javascript,google-maps-api-3,Php,Javascript,Google Maps Api 3,我有一个谷歌地图显示良好(谷歌地图API v3-见下面的代码)。代码最初插入到main index.php中,如下所示:- <script type="text/javascript"> code here.... </script> 代码在这里。。。。 这可以作为内联代码使用,我还可以在index.php中使用它将php代码中的变量插入到Google Maps API中 随着代码的增长,我想将GoogleMapsAPI javascript分离出来,并将其弹出到一
<script type="text/javascript">
code here....
</script>
代码在这里。。。。
这可以作为内联代码使用,我还可以在index.php中使用它将php代码中的变量插入到Google Maps API中
随着代码的增长,我想将GoogleMapsAPI javascript分离出来,并将其弹出到一个外部文件中,以实现tidyness
我的第一个想法是像这样插入文件:
<script type="text/javscript" src="code/googlemaps.php"></script>
现在它可以按原样工作,但是只要我尝试插入任何PHP代码,它就无法工作。我不太确定PHP服务器如何处理请求,但我想我希望将js文件交给PHP解析器,对PHP代码进行解析,然后将带有解析PHP的js传递回浏览器
该代码由以下命令触发:
<body onload="initialize()">
在我的main index.php中(我是javascript新手,请耐心听我说)
为了完整起见,以下是我使用的js代码:
function initialize() {
// Main Google Map view variables
var mapOptions = {
zoom: 6,
center: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
mapTypeId: google.maps.MapTypeId.ROADMAP,
noClear: true,
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.TOP_RIGHT
},
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_RIGHT
},
streetViewControl: false
};
// Display Google Map
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
//Display Select Airport Marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
map: map,
title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
});
// google.maps.Circle variables
var seRangeOptions = {
center: new google.maps.LatLng(<?php echo $selected_lat . "," . $selected_lon; ?>),
fillOpacity: 0.3,
fillColor: "blue",
map: map,
radius: <?php echo seradius; ?>,
strokeColor: "#000000",
strokeOpacity: 0.0,
strokeWeight: 0
};
// display Google Maps circle
serangecircle = new google.maps.Circle(seRangeOptions);
}
函数初始化(){
//主要谷歌地图视图变量
变量映射选项={
缩放:6,
中心:新的google.maps.LatLng(),
mapTypeId:google.maps.mapTypeId.ROADMAP,
诺克利尔:没错,
泛控制:对,
全控选项:{
位置:google.maps.ControlPosition.TOP\u右
},
动物控制:对,
ZoomControl选项:{
样式:google.maps.ZoomControlStyle.LARGE,
位置:google.maps.ControlPosition.TOP\u右
},
scaleControl:对,
规模控制:{
位置:google.maps.ControlPosition.BOTTOM\u RIGHT
},
街景控制:错误
};
//显示谷歌地图
var map=new google.maps.map(document.getElementById(“map_canvas”),
地图选项);
//显示选择机场标记
var marker=new google.maps.marker({
位置:新建google.maps.LatLng(),
地图:地图,
标题:“机场参考点\n新线\n另一条线”
});
//google.maps.Circle变量
var seRangeOptions={
中心:新的google.maps.LatLng(),
填充不透明度:0.3,
填充颜色:“蓝色”,
地图:地图,
半径:,
strokeColor:#000000“,
笔划不透明度:0.0,
冲程重量:0
};
//显示谷歌地图圈
SerangeColl=新的google.maps.Circle(seRangeOptions);
}
好的,问题解决了。以下是我所做的,欢迎反馈,我仍在学习:)将以下代码放入JavaScript文件:
<?php session_start(); ?>
<?php echo 'var lat = "'.json_encode($_SESSION['lat']).'";';?>
这一切执行的顺序仍然有点模糊。我假设PHP解析javascript文件,插入PHP变量,然后将文件返回到浏览器?此外,任何像Firebug这样的实用程序都会让我了解它在实践中是如何工作的
我还在js文件顶部弹出了以下内容,这似乎也整理了源代码在浏览器中的显示方式:
<?php header('Content-type: text/javascript'); ?>
问题可能是这一行:
title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
问题可能是这一行:
title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"
感谢您,在浏览器中进一步挖掘和检查生成的js代码会产生以下错误-注意:未定义变量:第6行/var/www/j2plan/code/googlemaps.php中的selected_lat注意:第6行/var/www/j2plan/code/googlemaps.php中的未定义变量:selected_lon。我想这是一个可变范围的问题?在这个实例中,推荐用什么方法将变量从PHP传递到JavaScript?在您提供的代码中,我看不到您定义了任何PHP变量,所以我猜您已经这样做了。如果代码在php函数中,且变量来自全局范围,则必须使用global关键字声明变量来自全局范围:谢谢,在浏览器中进一步挖掘和检查生成的js代码会产生以下错误-注意:未定义变量:第6行/var/www/j2plan/code/googlemaps.php中的selected_lat注意:第6行/var/www/j2plan/code/googlemaps.php中的未定义变量:selected_lon。我想这是一个可变范围的问题?在这个实例中,推荐用什么方法将变量从PHP传递到JavaScript?在您提供的代码中,我看不到您定义了任何PHP变量,所以我猜您已经这样做了。如果代码位于php函数中,且变量来自全局范围,则必须使用global关键字声明变量来自全局范围: