2014-02-14 125 views
0

我很新的JavaScript,我必须说我不擅长。对于我的网站,我有一个活动页面,我在其中放置了活动的位置,并且我想要一张地图旁边的地图,并在其中标记位置。谷歌地图API:地理编码器和信息窗口

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

这是我的代码,我添加了几个功能,如下降ping。谢谢:)

回答

2

毫无疑问......你的代码

一个问题,有错误报告:

Uncaught ReferenceError: marker2 is not defined 

因为变量​​不是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); 
     }); 
    }); 

infowindow将显示在标记点击上。

+0

谢谢:D真棒 –