4

我正在尝试将 Google API 中的地图加载到 div 中。但是,地图没有加载,也没有输出错误。这是代码:

// google maps

var geocoder, map;
function codeAddress(address) {
    geocoder = new google.maps.Geocoder();
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        var myOptions = {
        zoom: 8,
        center: results[0].geometry.location,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);

        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      }
    });
  }


  google.maps.event.addDomListener(window, 'load', function() {
    codeAddress('" . $location['address'] . " " . $location['zip'] . " " . $location['city'] . " " . $countries[$location['country']] . "');
  });

我已经处理这个问题很长时间了,我没有想法。

你们中的任何人都熟悉 google maps api,谁知道我的代码有什么问题?我的 div 确实存在 ID:map_canvas。

4

3 回答 3

6

问题是:

  • 我没有使用 API 密钥(尽管它认为这不是必要的,但它确实有效)
  • 我没有设置 div ( .map_canvas {width: 500px; height: 500px;}) 的宽度/高度。

  • 我忘了像这样初始化:

    initialize();
    
    function initialize() {
      google.maps.event.addDomListener(window, 'load', function() {
        codeAddress('London');
      });
    }
    

现在可以了。谢谢!

于 2013-09-27T11:53:23.117 回答
1

您是否正在加载 Google Maps API...?你不是在你的页面上错过了这样的东西吗?

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=<your_api_key&sensor=false&callback=initialize"></script>
...
<script>
    function initialize() {
        codeAddress('" . $location['address'] . " " . $location['zip'] . " " . $location['city'] . " " . $countries[$location['country']] . "');
    });
</script>

请看一下谷歌的例子

于 2013-09-27T11:33:59.883 回答
0

我假设您在“map_canvas”div 上加载地图,对吧?尝试在样式表上定义这些 div 的高度和宽度,这就是我在项目中发生的事情,它已经为我解决了......问题似乎是由于其他样式属性(如位置或浮动)而发生的。

于 2017-10-05T11:12:28.990 回答