Google Map Ajax加载

时间:2009-12-23 17:41:41

标签: javascript ajax google-maps

我正在使用谷歌地图“玩得开心”,并得到了一些帮助。基本上我有一小块HTML / Javascript,可以使用Ajax加载到标准HTML页面或div中。我目前正在尝试做的就是让地图出现。当页面作为HTML的一部分加载时,它很好,出现,唱歌,跳舞并偶尔播放长笛。但是,当它通过Ajax加载时它不会出现,但javascript google写道确实如此。

我想我错过了一个负载或准备好的触发器。但无法找出我所缺少的东西。我的搜索foo很弱。这是代码,不是很复杂,你可以看到。谷歌地图包含已被遗漏,但没有报告错误或警告,因为我说它可以作为HTML页面正常工作。

<div id="map_canvas_<?= $userContact->getId() ?>" style="margin: 10px auto; width: 90%; height: 300px;"></div>
<script type="text/javascript">

    var mapInstance = null;

    var startLatitude = 53.975044;
    var startLongitude = -2.153320;
    var startZoomLevel = 5;

// create the new instance.
    mapInstance = new GMap2($('map_canvas_<?= $userContact->getId() ?>'));

    // center the map on the UK
    mapInstance.setCenter(new GLatLng(startLatitude, startLongitude), startZoomLevel);

</script>

卡恩。

2 个答案:

答案 0 :(得分:2)

您是否尝试过将AJAX调用的结果传递给javascript的eval()方法?这将执行您从其他页面加载的任何javascript代码。

如果您只是使用AJAX加载js并将其添加到div中,则代码将不会自动执行。

答案 1 :(得分:0)

我认为您需要在window.onload函数中创建GMap2实例等。例如:

// ..other code stays the same
function initMap() {
    if (GBrowserIsCompatible()) { 
        mapInstance = new GMap2(..);
        mapInstance.setCenter(..);
    }
}
window.onload = initMap;

希望能解决您的问题。

相关问题