Passing address to Google Maps on page load

半城伤御伤魂 提交于 2019-12-20 05:33:30

问题


Having some problems initialising a google map using geocoding. First issue is with any commas being used in the $gmap string, second issue is with getting a "gmap_initialize is not defined". I know everything outside of the function is correct, any ideas?

<?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>

回答1:


Did you look at the output of your script?!

My guess is it looks something like:

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

In your PHP script, you probably actually want something like:

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

and you'll probably want to escape single quotes out of the $gmap variable.




回答2:


This looks like a JavaScript Error. Saying that this function (which looks right) is not defined. Maybe the call to gmap_initialize happens before this definition?




回答3:


Usually this error comes with JavaScript when something else on the page is not quite right, such as a single missing close tag...

Have you validated the code with W3C?



来源:https://stackoverflow.com/questions/4157750/passing-address-to-google-maps-on-page-load

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!