2012-04-26 38 views
21

Tôi đang làm việc trên một dự án mà tôi đang sử dụng api-v3 của Google Maps, Trên bản đồ sẽ có một vài dấu vị trí chứa thông tin mà tôi đang lưu trữ trong InfoWindow.Google maps-api v3 InfoWindow tự động mở khi tải trang

Tôi tự hỏi là có anyway mà bạn có thể thiết lập một InfoWindow để tự động mở trên tải trang (tức là tự động mở mà không có sự tương tác của người dùng).

Tìm kiếm trực tuyến tất cả những gì tôi có thể tìm thấy là nó cần được gắn với trình xử lý sự kiện nhưng tất cả các sự kiện đối tượng InfoWindow dường như có các sự kiện chuột.

Có ai biết cách giải quyết khác không?

Trả lời

26

Không chắc tôi hoàn toàn hiểu câu hỏi của bạn nhưng công trình này cho tôi với một mã hóa cứng LatLng:

var infoWindow = null; 
function initialize() 
{ 
    infoWindow = new google.maps.InfoWindow(); 
    var windowLatLng = new google.maps.LatLng(43.25,-68.03); 
    infoWindow.setOptions({ 
     content: "<div>This is the html content.</div>", 
     position: windowLatLng, 
    }); 
    infoWindow.open(map); 
} // end initialize 

google.setOnLoadCallback(initialize); 
+0

Cảm ơn bạn rất nhiều, đó là chính xác những gì tôi đang tìm kiếm !! – scrineym

+0

Cửa sổ thông tin giảm chính xác trên điểm đánh dấu của tôi. Có cách nào để tính chênh lệch kinh độ để đặt cửa sổ thông tin ngay phía trên điểm đánh dấu không? – user3411192

11

Tôi rất muộn cho câu hỏi này, nhưng tôi muốn chia sẻ something.I cũng tìm kiếm giải pháp của nó và thậm chí không làm việc từ giải pháp trên. Sau đó, tôi đã cố gắng bản thân và có giải pháp riêng của mình (tôi không phải là chuyên gia và ý tưởng của tôi có thể không tốt nhưng làm việc tốt cho tôi). chúng tôi thường làm như

var infowindow = new google.maps.InfoWindow(); 
google.maps.event.addListener(marker, 'click', (function(marker) { 
return function() { 
    infowindow.setContent('some content here'); 
     infowindow.open(map, marker); 
    } 
})(marker)); 

thay thế dòng trên với:

var infowindow = new google.maps.InfoWindow(); 
infowindow.setContent('some content here'); 
infowindow.open(map, marker); 

dont chờ cho sự kiện click của marker chỉ cần đặt nội dung và mở nó (bạn phải xác định bản đồ và đánh dấu và infowindow trỏ đến điểm đánh dấu của bạn).

+0

@Roka .. Cảm ơn bạn .. Nó hoạt động từ tôi :) – AnNaMaLaI

+0

Giải pháp đơn giản nhất, gọi nó ở bên ngoài điểm đánh dấu. Cảm ơn bạn Roka –

3

Chỉ cần lấy infowindow.open (bản đồ, điểm đánh dấu); trong số google.maps.event.addListener. Nó sẽ giống như thế này:

 var marker = new google.maps.Marker({ 
     position: myLatlng1, 
     map: map, 
     title: 'Uluru (Ayers Rock)' 

    }); 

    infowindow.open(map,marker); 

    google.maps.event.addListener(marker, 'click', function() { 
    }); 
1

Đây là mã của tôi tải cửa sổ thông tin với bản đồ và cũng có thể di chuột qua.

map.setCenter(results[0].geometry.location); 
var marker = new google.maps.Marker({ 
    map: map, 
    icon: "/images/map-marker.png", 
    draggable: true, 
    position: results[0].geometry.location 

}); 
var infowindow = new google.maps.InfoWindow({ 
    content: "Use pin to point your exact locality" 
}); 
google.maps.event.addListener(marker, 'mouseover', function() { 
    infowindow.open(map, marker); 
}); 
infowindow.open(map, marker); 
0

function initMap() { 
 
    var cairo = {lat:18.519331, lng: 73.849421}; 
 
    var map = new google.maps.Map(document.getElementById('map'), { 
 
     scaleControl: true, 
 
     center: cairo, 
 
     zoom: 15, 
 
    }); 
 

 
    var infowindow = new google.maps.InfoWindow; 
 
    infowindow.setContent('<b>adddress</b>'); 
 

 
    var marker = new google.maps.Marker({map: map, position: cairo}); 
 
    infowindow.open(map, marker); 
 
    infoWindow.open(map); 
 
}
<script async defer 
 
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCrCByzXY6y5KMSOi9AuqWVf4VYZPyJ5SE&language=hi&region=EG&callback=initMap"> 
 
</script> 
 
<div id="map"></div>

+0

Sẽ tốt hơn nếu bạn giải thích tại sao mã của bạn hoạt động. –

Các vấn đề liên quan