2013-07-02 96 views
0

JS改变:显示标记的信息窗口时,标记在谷歌地图

var map; 

function pageLoad() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 3, 
     center: new google.maps.LatLng(34.454543, 35.812997), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var infowindow = new google.maps.InfoWindow(); 
} 

function getRandomArbitary(min, max) { 
    return Math.random() * (max - min) + min; 
} 

function SetLocation() { 
    var latitude = getRandomArbitary(1, 30); 
    var longitude = getRandomArbitary(1, 30); 
    var locationlatLng = new google.maps.LatLng(latitude, longitude); 
    var marker = new google.maps.Marker({ 
     'position': locationlatLng, 
     'map': map 
    }); 
    map.panTo(locationlatLng); 
} 

HTML:

<div id="map" style="width: 900px; height: 600px"> 
<a href="javascript:void(0)" onclick="SetLocation();">Set Custom Location</a> 

当创建一个新的标志物上设定的自定义位置用户点击地图上的不眠不休,以但是如何在创建新标记时动态显示infowindow?

回答

0

点击标记(与google.maps.event.trigger)创建之后(当然,你需要点击监听器来打开信息窗口,有些内容信息窗口):

var map; 
var infowindow; 

function pageLoad() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 3, 
     center: new google.maps.LatLng(34.454543, 35.812997), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    infowindow = new google.maps.InfoWindow(); 
} 

function getRandomArbitary(min, max) { 
    return Math.random() * (max - min) + min; 
} 

function SetLocation() { 
    var latitude = getRandomArbitary(1, 30); 
    var longitude = getRandomArbitary(1, 30); 
    var locationlatLng = new google.maps.LatLng(latitude, longitude); 
    var marker = new google.maps.Marker({ 
     'position': locationlatLng, 
     'map': map 
    }); 
    google.maps.event.addListener(marker,'click',function(e){ 
     if (e && e.latLng) { 
      infowindow.setContent("location:" +e.latLng); 
     } else { 
      infowindow.setContent("location:" +marker.getPosition()); 
     } 
     infowindow.open(map,marker); 
    }); 
    google.maps.event.trigger(marker,'click'); 

    map.panTo(locationlatLng); 
} 
google.maps.event.addDomListener(window, 'load', pageLoad); 

working example