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>

当用户单击设置自定义位置时,会创建一个新标记并将地图固定在该标记上,但是如何在创建新标记时动态显示信息窗口?

4

1 回答 1

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

工作示例

于 2013-07-02T14:34:48.227 回答