谷歌地图api和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分离出来,并将其弹出到一

我有一个谷歌地图显示良好(谷歌地图API v3-见下面的代码)。代码最初插入到main index.php中,如下所示:-

<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关键字声明变量来自全局范围: