助けてください。
情報ウィンドウが開いているかどうかを確認したい。
例えば:
if (infowindow.isOpened)
{
doSomething()
}
また
if (infowindow.close)
{
doAnotherthing();
}
これを行う方法がわかりません
助けてください。
情報ウィンドウが開いているかどうかを確認したい。
例えば:
if (infowindow.isOpened)
{
doSomething()
}
また
if (infowindow.close)
{
doAnotherthing();
}
これを行う方法がわかりません
これは文書化されていない機能であるため、予告なしに変更される可能性がありますが、infoWindow.close()
メソッドはオブジェクトのマップを に設定しますnull
(これがinfoWindow.open(map, [anchor])
を渡す必要がある理由ですMap
)。表示:
function isInfoWindowOpen(infoWindow){
var map = infoWindow.getMap();
return (map !== null && typeof map !== "undefined");
}
if (isInfoWindowOpen(infoWindow)){
// do something if it is open
} else {
// do something if it is closed
}
更新:
これを記述するもう 1 つの潜在的に役立つ方法は、isOpen()
メソッドをに追加することInfoWindow
prototype
です。
google.maps.InfoWindow.prototype.isOpen = function(){
var map = this.getMap();
return (map !== null && typeof map !== "undefined");
}
Google がこれを行うためのより良い方法を提供しない限り、infoWindow オブジェクトにプロパティを追加できます。何かのようなもの:
google.maps.InfoWindow.prototype.opened = false;
infoWindow = new google.maps.InfoWindow({content: '<h1> Olá mundo </h1>'});
if(infoWindow.opened){
// do something
infoWindow.opened = false;
}
else{
// do something else
infoWindow.opened = true;
}
infowindow.getMap()
infowindow
が閉じている場合は null を返します。
したがって、次のように簡単に使用できます。
if (infowindow.getMap());
infoWindow に対してkey
とを簡単に設定できます。value
infoWindow.set('closed', true);
例:
const infoWindow = new google.maps.InfoWindow({
content: 'foo',
position: {
lat: some_number,
lng: some_number
}
});
infoWindow.set('closed', true);
// Clicking on polyline for this example
// Can be marker too
polyline.addListener(
'click',
() => {
if (infoWindow.get('closed')) {
infoWindow.open(map);
infoWindow.set('closed', false);
} else {
infoWindow.close();
infoWindow.set('closed', true);
}
}
);