我有以下代码从服务器上取回一些Javascript:
$.ajax({
url: '<?=base_url()?>index.php/guide/getMap',
success: function(data) {
$('.result').text(data);
alert('Load was performed.');
}
});
这成功返回了我想要的代码:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
//<![CDATA[
var map; // Global declaration of the map
var iw = new google.maps.InfoWindow(); // Global declaration of the infowindow
var lat_longs = new Array();
var markers = new Array();
function initialize() {
var myLatlng = new google.maps.LatLng(37.4419, -122.1419);
var myOptions = {
zoom: 13,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function createMarker(markerOptions) {
var marker = new google.maps.Marker(markerOptions);
markers.push(marker);
lat_longs.push(marker.getPosition());
return marker;
}
window.onload = initialize;
//]]>
</script>
我的问题是,如何将此javascript放在HTML文档的正文(或头部)中以代替我目前对succsufull回调的警报,以便显示Google地图? (注意:我还会有另一个ajax调用来返回所需的html)。
我不仅仅是直接使用JS调用GMaps API的原因是我需要在服务器上进行一些处理以从数据库中获取适当的标记以放在地图上等我正在使用{{ 3}}服务器端的库生成显示地图所需的js / html。
答案 0 :(得分:0)
不要让初始化函数处于不知名的地方,而是将其与回调函数联系起来,例如:
$.ajax({
url: '<?=base_url()?>index.php/guide/getMap',
success: function(data) {
function initialize() {
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
var mapCanvas = document.getElementById("map_canvas");
var myOptions = {
zoom: 13,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP}
map = new google.maps.Map(mapCanvas, myOptions);
}
}
});
你当然可以移动东西,看起来很漂亮,或者你喜欢它的布局。重要的是,在从地图上获取数据并加载地图API之后,您可以调用初始化函数。
答案 1 :(得分:0)
试试这个。我认为这样可行。将以下代码放在页面底部:
$.ajax({
url: '<?=base_url()?>index.php/guide/getMap',
success: function(data) {
$('.result').text(data);
initialize();
}
});