gpt4 book ai didi

php - 将谷歌地图加载到 ajax 加载的 div

转载 作者:行者123 更新时间:2023-12-04 04:49:45 27 4
gpt4 key购买 nike

我正在使用 jquery ajax 从解析 xml 文档的 php 脚本中获取一些结果。在那次 ajax 调用之后,我想在由该 php 脚本创建的 div 中显示来自 google api 的 map ( 这是我的问题 )。

是否可以将 map API 加载到 <div id="map-canvas">那是在 php 中创建的,在 ajax 调用之后?

PHP 文件

    ... $xmlData = simplexml_load_file("using an http service");            
echo "<div id='map-canvas'></div>"; //LOAD MAPP HERE!
echo "<ul>";
foreach($xmlData->StopTimes->StopTime as $stopTime){
echo "<li>",$stopTime->attributes()->Hour,"</li>";
}
echo "</ul>";
}

AJAX 文件
...
//station click, show next stops
$('.station_link').click(function(){
var station_text = $(this).text();
$.ajax({ //make the ajax call
type: "POST", //use POST/GET
url: "../server_side/nextStop.php", //file to send data
data: {poststation : station_text}, //postlink -> php($_POST) value / text -> jquery var value
success: function(data){ //on success, do something
$('#next_stop').html(data);
$('#next_stop').show();

//Google maps API
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}

function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE&callback=initialize";
document.body.appendChild(script);
}

loadScript();
}
});
});
});

这是我尝试过的(还有更多:p),但我什至不知道它是否只是错误的。

任何帮助或建议将不胜感激!

-- 更新 --

就这么简单:

javascript 文件
//station click, show next stops
$('.station_link').click(function(){
var station_text = $(this).text();
$.ajax({ //make the ajax call
type: "POST", //use POST/GET
url: "../server_side/nextStop.php", //file to send data
data: {poststation : station_text}, //postlink -> php($_POST) value / text -> jquery var value
success: function(data){ //on success, do something
$('#next_stop').html(data);
$('#next_stop').show();


// Google maps API
var mapOptions = {
center: new google.maps.LatLng(37.7831,-122.4039),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

}
});
});
});

只需添加 <script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>到 HTML 文件。

这就是我想要的,它正在加载 <div id="map-canvas">正如它应该。

无论如何,Ty 寻求帮助!
对不起,如果我没有早点证明我的观点,我有点新手;)

最佳答案

您调用 center: new google.maps.LatLng(-34.397, 150.644), 时必须加载 Google map ,所以我认为你应该创建一个虚拟 map 并在页面加载时对其进行初始化

<div id="dummy"></div>
<script type="text/javascript">

function initGoogle(){
myLatLng = new google.maps.LatLng(0,0);
var mapOptions = {
zoom: 1,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.HYBRID
};

map = new google.maps.Map(document.getElementById('dummy'), mapOptions);
}

$(document).ready(function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.id = 'googleMaps';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=initGoogle';
document.body.appendChild(script);
});

</script>

<style type="text/css">
#dummy { position: absolute; top: -5000px; left: -5000px; }
</style>

然后你可以绑定(bind)任何你想要的。

注意:我使用了 jQuery 的 $(document).ready() ,但如果你不使用 jQuery,你可以弄清楚。

关于php - 将谷歌地图加载到 ajax 加载的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615813/

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