1

我有以下代码可以从服务器获取一些 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>

我的问题是,代替我目前对 succsufull 回调的警报,如何将此 javascript 放置在 HTML 文档的正文(或头部)中,以便显示 Google 地图?(注意:我还会有另一个 ajax 调用来返回所需的 html)。

我不只是直接使用 JS 调用 GMaps API 的原因是我需要在服务器上进行一些处理以从数据库中获取适当的标记以放在地图上等。我在服务器上使用这个库侧生成显示地图所需的 js/html。

4

2 回答 2

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 之后调用初始化函数。

于 2012-11-01T03:54:36.163 回答
0

试试这个。我认为这会起作用。将以下代码放在页面底部:

 $.ajax({
                url: '<?=base_url()?>index.php/guide/getMap',
                success: function(data) {
                    $('.result').text(data);
                    initialize();
                }
            });
于 2012-11-01T03:54:55.817 回答