簡體   English   中英

未顯示除起始地圖位置以外的其他位置的Google Map Marker InfoWindow

[英]Google Map Marker InfoWindow Not Showing for location other than starting map location

單擊標記時,我試圖彈出一個信息窗口。 但是,僅當標記位於與創建Google地圖的位置相同的位置時,信息窗口才會顯示。 任何其他標記位置和信息窗口都不會彈出。 這似乎是一個非常奇怪的問題。 控制台上沒有錯誤。

例如在代碼中,如果我將標記的位置設置為傳遞的經度和緯度,即用於制作Google地圖。 沒事。 但是,如果像我對lat +1所做的那樣稍微改變位置( position_val ),則不會顯示信息窗口。 但是,當我單擊信息窗口時,它確實使地圖居中顯示了信息窗口。 偵聽器確實可以正常工作,就像我嘗試在單擊標記時輸出console.log()一樣。 為什么不能使標記具有不同的位置? 為了簡化起見,我將地圖創建和標記創建結合在一起。

編輯:jsfiddle鏈接: http : //jsfiddle.net/G3b8M/2/

var map;
var infowindow = new google.maps.InfoWindow({});

function makeMap(lat, long) {


    var myOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        position: new google.maps.LatLng(lat, long),
        zoom: 14,

    };

    map = new google.maps.Map( document.getElementById("map_canvas"), myOptions);
    map.setCenter( myOptions.position);

    //position_val = new google.maps.LatLng(lat, long); infowindow works
    position_val = new google.maps.LatLng(lat + 1, long); //infowindow doesn't work

    var marker = new google.maps.Marker({
        position: position_val ,
        map: map,
    });

    map.setCenter(position_val);

    var contentString = 'hello how are you';


    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(contentString);
        infowindow.open(map, marker);
    }); 

}

任何幫助,將不勝感激。 謝謝。

我無法確切地告訴您發生這種情況的原因,通常是不應該的,但是地圖的position屬性(無論值是什么)的純粹存在似乎是問題所在。

演示的:

  1. positionhttp//jsfiddle.net/doktormolle/wqgLR/
  2. 沒有positionhttp : //jsfiddle.net/doktormolle/wqgLR/1/

注意:我對您的代碼做了一些修改,以減少其他可能的原因。 例如,您不應使用long作為標識符,因為它是保留字

但是,對我來說,它與原始代碼中的另一行一起工作是沒有意義的,這很奇怪。

您可能會為此報告一個錯誤

暫無
暫無

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

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