谷歌地图api v3没有加载

时间:2013-04-03 16:28:09

标签: google-maps-api-3

我正在将google maps api从v2升级到v3。由于某种原因,我的地图将无法加载。我通过api和其他一些位置跟踪代码大纲。

这是我的代码:我正确地放置了变量吗?任何帮助?地图可在Casadragones

找到
var marker;
function load() {

  //get $result from browserdetect.php
    //if (GBrowserIsCompatible()) {
    // *** if (is_browser_compatible()){ ***
    geocoder = new google.maps.Geocoder();
    //geocoder = new GClientGeocoder();
    var mapOptions = {
    zoom: 2,         
    center: new google.maps.LatLng(40.513799, -35.375977),
    mapTypeControl: true,
    panControl: true;
    zoomControl: true; 
    mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    mapobj = new google.maps.Map(document.getElementById('map'), mapOptions); 
    /*
    mapobj = new GMap2(document.getElementById('map'));
    mapobj.addControl(new GLargeMapControl3D());
    mapobj.addControl(new GMapTypeControl());
    //mapobj.setCenter(new GLatLng(28.728149, -88.992889),3); // old
    mapobj.setCenter(new GLatLng(40.513799, -35.375977), 2); // center in Atlantic in order to show US and UK        
    */
         // Change this depending on the name of your PHP file
      /*GDownloadUrl("<? bloginfo('template_url'); ?>/phpsqlsearch_genxml.php", function(data) {
      var xml = GXml.parse(data);*/
      downloadUrl("<? bloginfo('template_url'); ?>/phpsqlsearch_genxml.php", function(data) {
      var xml = parseXml(data);
      var markers = xml.documentElement.getElementsByTagName('marker');

      for (var i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
        var address = markers[i].getAttribute("address");
        var city = markers[i].getAttribute("city");
        var state = markers[i].getAttribute("state");
        var zipcode = markers[i].getAttribute("zipcode");
        var phone = markers[i].getAttribute("phone");
        var pairing = markers[i].getAttribute("pairing");
        var type = markers[i].getAttribute("type");
        var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                parseFloat(markers[i].getAttribute("lng")));
        //var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
        //                        parseFloat(markers[i].getAttribute("lng")));
        marker = createMarker(point, name, address, city, state, zipcode, phone, type);
        marker.setMap(mapobj); 
        //mapobj.addOverlay(marker);
      }
    });
  //}
}

dom事件和其他一切都在其他地方。我认为这是最麻烦的代码。

1 个答案:

答案 0 :(得分:1)

您的地图未加载,因为您的代码都没有运行。仔细看看这些内容:

var mapOptions = {
    zoom: 2,         
    center: new google.maps.LatLng(40.513799, -35.375977),
    mapTypeControl: true,
    panControl: true;
    zoomControl: true; 
    mapTypeId: google.maps.MapTypeId.ROADMAP
}

你看到了问题吗?如果没有,请在任何浏览器中打开Chrome中的开发者工具或类似的开发者工具,然后加载您的页面。您应该收到指向问题的错误消息。

本身不是错误,但在此对象中关闭;后也应该有}

此外,您在某些变量上遗漏了var声明:mapobjgeocoder。此外,var marker不属于此功能之外;把它移到里面。

您使用什么编辑器编辑代码?我建议使用实时语法检查的编辑器,例如Komodo EditKomodo IDEIntelliJ IDEA。当我将代码粘贴到Komodo IDE中时,会立即在语法错误上添加波浪形的红色下划线。