javascript - jquery:如何通过 ajax 加载 Google Maps API?

标签 javascript jquery google-maps

在你回复之前:这并不像你想象的那么直接!

  • 我有一个“在 map 上显示”按钮 单击时打开 对话框/灯箱与谷歌 映射。
  • 我不想加载 map api 页面加载,就在 map 被加载时 要求

这是“在 map 上显示”按钮放入对话框的 php 文件:

<div id="map_canvas"></div>

<script type="text/javascript">
    $(function() {  
            //google maps stuff             
            var latlng = new google.maps.LatLng(<?php echo $coords ?>);
            var options = {
              zoom: 14,
              center: latlng,
              mapTypeControl: false,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            };          
            var map = new google.maps.Map(document.getElementById('map_canvas'), options);          
            var marker = new google.maps.Marker({
              position: new google.maps.LatLng(<?php echo $coords ?>),
              map: map
            });
    })
</script>

我一直在尝试在像这样的对话框中使用 ajax 之前加载 API:

$('img.map').click(function(){      
    var rel = $(this).attr('rel');
    $.getScript('http://maps.google.com/maps/api/js?sensor=false', function(){
        $.fn.colorbox({
            href:rel
        })
    });
})

这似乎不起作用:(

我也试过:

  • 添加<script src="http://maps.google.com/maps/api/js?sensor=false"></script> 到ajax文件
  • type="text/javascript"运行 $.getScript('http://maps.google.com/maps/api/js?sensor=false'); 准备就绪

问题 浏览器似乎被重定向到 api.js 文件 - 你看到一个白屏

最佳答案

This FAQ answer详细介绍了如何异步加载 Maps API,还有一个很好的 example随之而来。

基本上,建议您将执行代码放在命名函数中,然后加载 Maps API 引用所述回调并使用“async”参数。或者您可以这样使用 jQuery 的 getJSON:

$.getJSON('http://maps.google.com/maps/api/js?sensor=false&async=2&callback=?', function(){
    $.colorbox({
        href:rel
    })
});

关于javascript - jquery:如何通过 ajax 加载 Google Maps API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811787/

相关文章:

javascript - 如何缩放html中的文本?

javascript - 使用 "this"作为html类的点击事件

jquery - 从下拉菜单中的单个 <option> 输出多个值(Highslide JS)

java - 单击信息窗口 Google Maps V2 的监听器

javascript - 如何通过点击谷歌地图中的标记来显示图像

javascript - 从外部 API 为 React 组件绑定(bind)数据

javascript - ECMAScript5.1 中的 GetValue()

javascript - 在 JavaScript 中用正则表达式替换字符串

php - 使用 jquery 显示评论

javascript - 标记不会出现在 GeoChart 上,但 map 显示得很好