谷歌地图标记未定义wordpress

时间:2013-05-24 02:43:00

标签: wordpress google-maps

我在Ultimatum WordPress主题模板中使用以下代码以及一些PHP代码来提供地图所需的动态值。我得到一个标记未定义的错误。代码在div标签内放置在页面的3/4处,而不是在页眉或页脚中,因为它仅用于一页。我尝试了一些没有运气的建议。

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
//<![CDATA[
var geocoder;
var map;
function initialize ()
{
    geocoder = new google.maps.Geocoder();
    var address = document.getElementById('Property').value;
    var city = document.getElementById('City').value;
    var postal_code = document.getElementById('PostalCode').value;
    var address_google_map = address + ', ' + city + ', ON ' + postal_code;

    var myOptions =
    {
        zoom: 15,
        mapTypeControl: true,
        zoomControl: true,
        zoomControlOptions:
        {
            style: google.maps.ZoomControlStyle.SMALL
        },
        StreetViewControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var info_text = address + '<br />' + city + ' ON';
    var info_window = new google.maps.InfoWindow
    ({
        content: info_text
    });
    var map = new google.maps.Map(document.getElementById('google_map'), myOptions);

    geocoder.geocode( { 'address': address_google_map}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });


    google.maps.event.addListener(marker, 'click', function()
    {
        info_window.open(map, marker);
    });
}


window.onload = function() {
   initialize();
}
//]]>
</script>

1 个答案:

答案 0 :(得分:3)

标记是Geocoder回调例程的本地标记。将单击侦听器定义移动到其在范围内的函数内。

geocoder.geocode( { 'address': address_google_map}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });

    google.maps.event.addListener(marker, 'click', function()
    {
    info_window.open(map, marker);
    });
  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
});

}