2

我正在将谷歌地图 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 事件和其他一切都在别处。我认为这是最麻烦的代码。

4

1 回答 1

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一些变量的声明:mapobj例如geocoder。此外,var marker不属于此功能;把它移到里面。

你用什么编辑器来编辑你的代码?我推荐具有实时语法检查功能的编辑器,例如Komodo EditKomodo IDEIntelliJ IDEA。当我将您的代码粘贴到 Komodo IDE 中时,它会立即在语法错误上加上波浪形的红色下划线。

于 2013-04-03T17:09:23.110 回答