簡體   English   中英

如何在標記上單擊以獲取一個信息窗口

[英]How to get an infoWindow clicking on a Marker

我想知道如何在單擊標記時打開信息窗口,我認為這是正確的,但不起作用。 這是腳本

var map;
function initialize() {
    navigator.geolocation.getCurrentPosition(function(position){
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var coords = new google.maps.LatLng(latitude, longitude);
        var mapOptions = {
            disableDefaultUI: true,
            center: coords,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
        placeMarker();
        var infowindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function() {
            getComment(marker, infowindow);
      });
});
}
function getComment(marker, infowindow){
    var message = "Hello";
    infowindow.setContent(message);
    infowindow.open(map, marker);
}
function placeMarker() {
    //place some marker
}
google.maps.event.addDomListener(window, 'load', initialize);

感謝您的任何建議!

沒有在jsfiddle中運行它,但是下面的代碼應該可以工作。

您必須在函數placeMarker()之外定義var marker ,就像使用infoWindow

var map;
function initialize() {
    navigator.geolocation.getCurrentPosition(function(position){
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var coords = new google.maps.LatLng(latitude, longitude);
        var mapOptions = {
            disableDefaultUI: true,
            center: coords,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

        //position of marker = coords in this example
        var marker = new google.maps.Marker({
            position: coords,
            map: map,
            title: "randomTitle",
            zIndex: Math.round(latlng.lat()*-100000)<<5
        });
        var infowindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function() {
            getComment(marker, infowindow);
      });
});
}
function getComment(marker, infowindow){
    var message = "Hello";
    infowindow.setContent(message);
    infowindow.open(map, marker);
}
google.maps.event.addDomListener(window, 'load', initialize);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM