我决定尝试在Google I / O 2013上宣布新的Visual Refresh,因为获取新的basemaps / UI只需要一个属性/查询字符串。
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。
然而,自从更改后,当我在移动设备上打开InfoWindow时(使用Javascript API),它右上角的关闭按钮似乎不再响应。有没有人观察过这个?我试图找出我的代码或Google的错误。
更新 这是我用来测试的基本小提琴。适用于Chrome,IE和& Firefox但不在移动设备上(到目前为止只能尝试android)
答案 0 :(得分:1)
我注意到某些Apple设备的效果相同。将此视为一个非常脏的黑客,但如果您不想等到修复此错误,您可以自己实现close事件,以便它也可以在移动设备上运行:
首先,您需要为信息窗口内容定义一个ID(稍后您将需要它)
var contentString = '<div id="infowindowContent">You should be able to close me</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
然后你需要为这个infowindow的domready-event附加一个监听器。如果此事件被触发,您知道信息窗口已附加到DOM,您可以开始实现以下hack:
google.maps.event.addListener(infowindow, 'domready', function() {
var infowindowCloseButton = $($($("#infowindowContent").parents()[2]).children()[0]);
infowindowCloseButton.click(function(){
infowindow.close();
});
});
我们做的很简单:我们只需导航到infowindow的关闭按钮,然后附上一个鼠标点击事件来关闭这个信息窗口。
我把一个小例子放在一起:
http://chatmap.eu/playground/closeInfoWindows.html
正如我所说:它非常脏,但它对我有用。