gpt4 book ai didi

php - 谷歌地图API和PHP集成问题

转载 作者:行者123 更新时间:2023-11-28 02:33:50 28 4
gpt4 key购买 nike

我有一个显示良好的 Google map (Google Maps API v3 - 请参阅下面的代码)。代码最初被插入到主index.php中,如下所示:-

<script type="text/javascript">
code here....
</script>

这作为内联代码工作得很好,我还可以在index.php中使用将变量从我的PHP代码插入到Google Maps API中。

随着代码的增长,我想分离出 Google Maps API javascript 并将其弹出到外部文件中以保持整洁。

我的第一个想法是像这样插入文件:

<script type="text/javscript" src="code/googlemaps.php"></script>

现在这可以正常工作,但是一旦我尝试插入任何 PHP 代码,它就无法工作。我不太确定PHP服务器如何处理请求,但我想我希望将js文件传递给PHP解析器并解析PHP代码,然后将带有解析后的php的js传递回浏览器。

代码由

触发
<body onload="initialize()">

在我的主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);
}

好的,问题解决了。这是我所做的,欢迎反馈,我还在学习:)将以下代码放入 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"

JavaScript 不接受换行符来直接继续字符串,必须使用 \n ,如果title:"<?php echo $airport_name[$selected_airport]; ?> Airport Reference Point\na new line\nanother line"返回一个多行字符串,那么它将破坏 JavaScript 代码。

尝试使用str_replace()函数将所有新行替换为 \n ,还有addslashes()所以"也不会破坏 JavaScript 字符串

title:"<?php echo str_replace("\n", '\n', str_replace("\r",'', addslashes($airport_name[$selected_airport]))); ?> Airport Reference Point\na new line\nanother line"

关于php - 谷歌地图API和PHP集成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com