Передача адреса в Google Maps при загрузке страницы - PullRequest
1 голос
/ 11 ноября 2010

Возникли некоторые проблемы при инициализации карты Google с использованием геокодирования. Первая проблема связана с тем, что в строке $ gmap используются запятые, вторая проблема связана с получением «gmap_initialize is notfined». Я знаю, что все, кроме функции, правильно, есть идеи?

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

2 голосов
/ 15 ноября 2010

Вы смотрели на вывод вашего скрипта?!

Полагаю, это выглядит примерно так:

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

В вашем PHP-скрипте вы, вероятно, действительно хотите что-то вроде:

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

и вы, вероятно, захотите экранировать одинарные кавычки из переменной $gmap.

0 голосов
/ 11 ноября 2010

Обычно эта ошибка возникает в JavaScript, когда что-то еще на странице не совсем верно, например, отсутствует один закрывающий тег ...

Проверяли ли вы код с помощью W3C?

0 голосов
/ 11 ноября 2010

Это похоже на ошибку JavaScript.Сказать, что эта функция (которая выглядит правильно) не определена.Может быть, вызов gmap_initialize происходит до этого определения?

...