2014-02-14 3 views
0

Я очень новичок в javascript, и должен сказать, что я не очень хорош. Для моего веб-сайта у меня есть страница событий, на которой я помещаю местоположение события, и я хочу, чтобы рядом с ним была карта с маркерами, в которых размещались местоположения.API Карт Google: геокодер и информационное окно

<script type="text/javascript">  
var geocoder; 
var map; 
var marker; 
function initialize() { 
     var paris = new google.maps.LatLng(48.858859, 2.3470599) 
     var lieu1 = new google.maps.LatLng(48.8531128, 2.3493023) 
     geocoder = new google.maps.Geocoder(); 
     var mapOptions = { 
      center: paris, 
      zoom: 12 
     } 
     map = new google.maps.Map(
      document.getElementById('map-canvas'), mapOptions 
     ); 
     /* 
     This works: 
     var contentString = 'Lorem Ipsum'; 
     var infowindow = new google.maps.InfoWindow({ 
      content: contentString, 
      maxWidth: 200 
     }); 
     var marker = new google.maps.Marker({ 
      position: lieu1, 
      map: map, 
      title: 'Lorem Ipsum!', 
      animation: google.maps.Animation.DROP 
     }); 
     google.maps.event.addListener(marker, 'click', function() { 
      infowindow.open(map,marker); 
     });*/ 

     var contentString2 = 'Lorem Ipsum123'; 
     var infowindow2 = new google.maps.InfoWindow({ 
      content: contentString2, 
      maxWidth: 200 
     }); 
     var address = "Paris"; 
     geocoder.geocode({ 'address': address}, function(results) { 
     var marker2 = new google.maps.Marker({ 
      position: results[0].geometry.location, 
      map: map, 
      title: 'Lorem Ipsum!', 
      animation: google.maps.Animation.DROP 
      }); 
     }); 
     google.maps.event.addListener(marker2, 'click', function() { 
      infowindow2.open(map,marker2); 
     }); 
    } 

    function toggleBounce() { 
     if (marker.getAnimation() != null) { 
      marker.setAnimation(null); 
     } else { 
      marker.setAnimation(google.maps.Animation.BOUNCE); 
     } 
    } 


    google.maps.event.addDomListener(window, 'load', initialize);  
</script> 

Вот мой код, я добавил несколько функций, таких как падение пинга. Спасибо :)

ответ

2

Там нет вопроса ...

Одна из проблем с вашим кодом, есть сообщила об ошибке:

Uncaught ReferenceError: marker2 is not defined 

, поскольку переменная marker2 не виден снаружи geocoder.geocode() метода. Вы должны перенести прослушиватель событий сразу после определения маркера:

geocoder.geocode({ 'address': address}, function(results) { 
    var marker2 = new google.maps.Marker({ 
     position: results[0].geometry.location, 
     map: map, 
     title: 'Lorem Ipsum!', 
     animation: google.maps.Animation.DROP 
     }); 

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

и информационное сообщение будет отображаться на маркерном щелчке.

+0

Спасибо: D Awesome –

Смежные вопросы