2013-05-16 36 views
0

我決定我要得到剩餘物,在谷歌宣佈我新的Visual刷新後關閉信息窗口/ O 2013一試,因爲所有需要得到新的底圖/ UI是一個單一的財產/請求參數。無法切換到新的Visual刷新

的JavaScript API

function initializeMap() { 
    var myOptions = { 
     zoom: 13, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    google.maps.visualRefresh = true; 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
} 

- 或 -

靜態地圖API

https://maps.googleapis.com/maps/api/staticmap?center=1600%20Amphitheatre%20Parkway%20Mountain%20View,%20CA%2094043&size=400x400&sensor=false 

它偉大的工作,我的地圖現在使用的新底圖磚UI。

然而自改,當我移動設備(使用JavaScript API)上打開信息窗口,在它的右上角的關閉按鈕似乎沒有任何再回覆。有其他人觀察過嗎?我試圖找出這是我的代碼還是Google的錯誤。

更新: 這是我用來測試的基本小提琴。適用於Chrome,IE火狐&而不是在移動設備上(只能夠到目前爲止嘗試安卓)

http://jsfiddle.net/vG3WE/1

+0

是的,這裏有同樣的問題也非常基本的地圖,所以我認爲這是谷歌。我的想法是,這將是最終固定,只是不使用了視覺的更新現在。不理想,但你可以做什麼? –

+0

是啊,這是我從我的測試中得到了爲好。我向他們的問題跟蹤器提交了一個錯誤,所以我們只能等着瞧。與此同時,我已將應用程序還原到當前的基本磁貼。 –

回答

1

我注意到一些蘋果設備相同的效果。考慮這是一個非常骯髒的黑客,但如果你不想等到這個bug被修復,你可以自己實現關閉事件,以便它也應該在移動設備上工作:

首先你需要定義你的信息窗口內容的ID(你需要的是以後)

var contentString = '<div id="infowindowContent">You should be able to close me</div>';  
var infowindow = new google.maps.InfoWindow({ 
    content: contentString 
}); 

然後,你需要附加一個監聽這個信息窗口的domready中的事件。因爲如果這一事件被觸發,你知道的信息窗口附加到DOM,你可以開始執行下面的技巧:

google.maps.event.addListener(infowindow, 'domready', function() { 
    var infowindowCloseButton = $($($("#infowindowContent").parents()[2]).children()[0]); 
    infowindowCloseButton.click(function(){ 
    infowindow.close(); 
    }); 
}); 

我們做的是非常簡單的:我們只是導航到的關閉按鈕infowindow並附加一個mouseclick事件來關閉此infowindow。

我把一個小例子:

http://chatmap.eu/playground/closeInfoWindows.html

正如我說:這是非常髒,但它爲我工作。

+0

雖然我同意這不是一個理想的解決方案,這種解決方法使用iOS設備時,也解決了我的問題。感謝分享。我們希望Google很快提出修復方案。 –