0

我网站上的 Google 地图不再显示。我可以看到放大/缩小滑块、地图/卫星按钮等……但地图本身不再显示。我在某处读到该地图应位于标有“地图”的 div 标签中,其高度和宽度均在 CSS 中说明。地图总是列出了 height/width CSS 属性,但 ID 的标签不同。我将 ID 更改为地图和相应的 CSS,但地图仍然不会显示。我在其他地方读到 Yoast 插件的 Google Analytics 也导致了类似的错误。我已经禁用了所有插件,然后我一次又重新激活了一个插件,看看是否有另一个插件可能是问题所在。但是,似乎没有运行的插件对地图显示有任何影响。

我是一名网页设计师,具有一些 HTML/CSS 知识。我设计了这个网站,并聘请了一个人为我将它编码成一个自定义的 Wordpress 主题。就像我说的那样,地图一直显示得很好,但现在不显示了,我不知道为什么。我真的可以使用一些帮助来解决这个问题。我正在尝试更多地了解编码,以便将来我可以自己调试和修复这样的事情。一点帮助将不胜感激!

这是带有地图的页面的链接:http: //seegerlaw.com/contact-us/

如果您需要我提供任何其他信息,请告诉我。

4

1 回答 1

1

您正在使用未记录的字段:

function initialize() {
    geocoder = new google.maps.Geocoder();
    codeAddr(function(lat, lng) {
        myLatlng = new google.maps.LatLng(lat,lng);
        var mapOptions = {
            zoom: 15,
            center: myLatlng,
            disableDefaultUI: false,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map
        });
    });
}

function codeAddr(callback) {
    if (geocoder) {
      geocoder.geocode({ 'address': address }, function (results, status) {
         if (status == google.maps.GeocoderStatus.OK) {
            console.log(results[0].geometry);
            maps_lat = results[0].geometry.location["kb"];
            maps_lng = results[0].geometry.location["lb"];
            callback(maps_lat, maps_lng);
         }
         else {
            console.log("Geocoding failed: " + status);
         }
      });
    }
}

使用lat()和的lng()属性LatLng来获取它们的值。

更好的是,只需将LatLngGeocoder 中的直接传递给 MapOptions 对象:

codeAddr(function(latLng) {
    var mapOptions = {
        center: latLng,
        ...
    };
    ...
});

callback(results[0].geometry.location);

更好的是——看起来你总是对同一个地址进行地理编码——只需将 LatLng 硬编码到你的代码中。

于 2013-09-25T02:36:39.690 回答