Streetview API HUDでトグルフルスクリーン要素を非表示にしようとしています。
panorama = new google.maps.StreetViewPanorama(document.getElementById(data.id), {
position : new google.maps.LatLng(data.lat, data.lng),
pov: {
heading : Number(data.heading),
pitch : Number(data.pitch)
},
linksControl: false,
panControl: false,
addressControl: false,
enableCloseButton: false,
zoomControl: false,
fullScreenControl: false,
enableCloseButton: false,
addressControlOptions: {
position: google.maps.ControlPosition.BOTTOM_CENTER
}
});
これらのオプションは here と指定されています。 fullScreenControl
を除くすべてのオプションが機能しています
私のコードはライブで見ることができます こちら 。 UI要素は、ビューポートの右上隅にあります。
ドキュメントは次のように警告します。
注:このページでは、バージョン3.22以降のGoogle Maps JavaScript APIで使用可能なコントロールについて説明します。以前のコントロールセットをしばらく使用し続ける場合は、v3.22でgoogle.maps.controlStyle = 'azteca'を設定できます。この記事のコントロールの変更の詳細については、v3.22マップコントロールの新機能をご覧ください。
ただし、次のようにAPI Jsファイルにリンクしています。
<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
また、執筆時点で3.expは3.22である必要があります。
ここに何が欠けていますか?
別の解決策は、cssを使用してフルスクリーン要素を非表示にすることです。
.gm-style > div:nth-child(10){
display:none;
}
fullscreenControl: false
の代わりに fullScreenControl: false
次は正しくありません。エラーは発生しませんが、コントロールには影響しません。
fullScreenControl: false, -- this is not right
正しいコードは
fullscreenControl: false,
参照: https://developers.google.com/maps/documentation/javascript/reference
現時点でAPIに小さな欠陥があると思います。私はいくつかのテストを行いましたが、ドキュメントで指定されているように、fullScreenControlOptionsフィールドを使用して全画面コントロールを削除することもできませんでした。
DisableDefaultUIをtrueに設定しても、フルスクリーンコントロールが表示されます。
私はこれが要素を取り除くためのより良い方法ではないかもしれないことを知っていますが、あなたは次のようなことをすることができます:
var FULL_SCREEN_CONTROL_STYLE = {
width: '25px',
height: '25px',
top: '0px',
right: '0px',
position: 'absolute',
overflow: 'hidden'
};
var children = panorama.getContainer().getElementsByTagName('div');
for (var i = 0; i<children.length; i++) {
var current = children[i];
var match = true;
for (var k in FULL_SCREEN_CONTROL_STYLE) {
if (current.style[k] != FULL_SCREEN_CONTROL_STYLE[k]) {
match = false;
}
}
if (match) { // THIS IS OUR ELEMENT
current.parentElement.removeChild(current);
}
}
Michal Szyndelが正しい。画面のsは小文字です。彼の答えを正しい答えに変えることをお勧めします。今日、fullscreenControlは動作しましたが、fullScreenControlは動作しませんでした。