在带有自定义控件的Google Maps Javascript网页上,在IPad上,如果用户进入全屏显示,则IPad会显示“ X”控件,该控件会遮盖我的自定义控件。
This JSFiddle 演示了此问题。
复制步骤:
JavaScript代码段:
var customControl = document.getElementById('customControl');
map.controls[google.maps.ControlPosition.LEFT_TOP].push(customControl);
可能的解决方法
LEFT_TOP
位置。 (或TOP_LEFT
,该问题也出现在左上角。)fullscreenControl
隐藏全屏控件。我觉得那是Google的工作我有reported this个Google地图问题。
这是一个代码段-奇怪的是,这不会重现该问题,它不会在iPad上显示全屏控件:
/*
* declare map as a global variable
*/
var map;
/*
* use google maps api built-in mechanism to attach dom events
*/
google.maps.event.addDomListener(window, "load", function () {
/*
* create map
*/
var map = new google.maps.Map(document.getElementById("map_div"), {
zoom: 11,
center: new google.maps.LatLng(51.521,-0.12),
streetViewControl: false,
mapTypeControl: false
});
/* Custom contol */
var customControl = document.getElementById('customControl');
map.controls[google.maps.ControlPosition.LEFT_TOP].push(customControl);
});
function customControlClicked() {
alert("Custom control clicked");
}
body {
margin: 0;
padding: 0;
font: 12px sans-serif;
}
h1, p {
margin: 0;
padding: 0;
}
#customControl {
font-size: 32px;
background-color: white;
border-style: solid;
border-width: 1px;
border-color: black;
margin-left: 5px;
margin-top: 5px;
padding: 4px;
}
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map_div" style="height: 400px;"></div>
<div id="customControl" onclick="customControlClicked();">Custom</div>
答案 0 :(得分:0)
编辑,谷歌表示他们不会解决该问题:针对我的issue report,他们说
“经过调查后,我发现iOS是正在创建退出按钮的iOS,并且不是由Maps Javascript API实现的,请注意,退出按钮也与其他Web应用程序一起出现,因为这是在我们的范围和文档范围之外,请将您的查询重定向到iOS的支持页面,因为它们将为该问题提供更好的解决方案。“
因此,除非有人有更好的答案,否则我将通过删除iPad上的全屏控件来解决此问题。
Here是具有解决方法的JSFiddle。
这是基本代码。
var mapOptions = {
zoom: 11,
center: new google.maps.LatLng(51.521,-0.12),
streetViewControl: false,
mapTypeControl: false
};
if ( isIPad() ) {
mapOptions.fullscreenControl = false;
}
var map = new google.maps.Map(document.getElementById("map_div"), mapOptions);
function isIPad() {
var userAgent = window.navigator.userAgent;
return (userAgent.match(/iPad/i));
}
代码改编自here