Google maps 在页面加载时将地址传递给Google Maps

Google maps 在页面加载时将地址传递给Google Maps,google-maps,geocoding,Google Maps,Geocoding,使用地理编码初始化谷歌地图时遇到一些问题。第一个问题是$gmap字符串中使用的任何逗号,第二个问题是获取“未定义gmap_initialize”。我知道函数之外的一切都是正确的,有什么想法吗 <?php $gmap = "Prague, Czech Republic"; ?> <script type="text/javascript"> function gmap_initialize() { var geocoder = new google.maps.Geocod

使用地理编码初始化谷歌地图时遇到一些问题。第一个问题是$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>

函数gmap_initialize(){
var geocoder=new google.maps.geocoder();
geocoder.geocode({'address':},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
变量选项={
缩放:16,
位置:结果[0]。geometry.location,
中心:结果[0].geometry.location,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),选项);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。几何体。位置
});
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}

这看起来像是一个JavaScript错误。表示此函数(看起来正确)未定义。也许对gmap_初始化的调用发生在这个定义之前

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


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

您是否查看了脚本的输出

我猜它看起来像:

geocoder.geocode({'address':捷克共和国布拉格},函数(结果、状态){

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

geocoder.geocode({'address':''},函数(结果,状态){


您可能想从
$gmap
变量中转义单引号。

谢谢Broady,这是修复方法(忘记用我的答案更新)。转义也很好。