在页面加载时将地址传递到Google地图

时间:2010-11-11 18:10:12

标签: google-maps geocoding

使用地理编码初始化Google地图时遇到一些问题。第一个问题是在$ gmap字符串中使用任何逗号,第二个问题是获取“gmap_initialize未定义”。我知道函数之外的一切都是正确的,有什么想法吗?

<?php $gmap = "Prague, Czech Republic"; ?>

<script type="text/javascript">
function gmap_initialize() {
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': <?php echo $gmap; ?>}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    var options = {
      zoom: 16,
      position: results[0].geometry.location,
      center: results[0].geometry.location,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), options);

    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
});

}
</script>

3 个答案:

答案 0 :(得分:2)

你看过脚本的输出了吗?!

我的猜测看起来像是:

geocoder.geocode( { 'address': Prague, Czech Republic}, function(results, status) {

在您的PHP脚本中,您可能实际上需要以下内容:

geocoder.geocode( { 'address': '<?php echo $gmap; ?>'}, function(results, status) {

你可能想要从$gmap变量中删除单引号。

答案 1 :(得分:0)

这看起来像是一个JavaScript错误。说没有定义这个功能(看起来正确)。也许在这个定义之前调用gmap_initialize?

答案 2 :(得分:0)

当页面上的其他内容不太正确时,通常会出现此错误,例如单个缺少关闭标记...

您是否使用W3C验证了代码?