2016-03-18 6 views
-1

Googleマップで地面オーバーレイの可視性を制限する方法はありにのみ、特定のズームレベルは、そのofficial documentationに示すGoogle's exampleグーグルオーバーレイの表示をGoogleマップの特定のズームレベルに制限しますか?

12の間および14、グランドオーバーレイはすべてのズームレベルで表示されると言います。

var historicalOverlay; 

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 13, 
    center: {lat: 40.740, lng: -74.18} 
    }); 

    var imageBounds = { 
    north: 40.773941, 
    south: 40.712216, 
    east: -74.12544, 
    west: -74.22655 
    }; 

    historicalOverlay = new google.maps.GroundOverlay(
     'https://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg', 
     imageBounds); 
    historicalOverlay.setMap(map); 
} 
+0

なぜ私が説明もなく、投票を降りたのですか?私は質問がはっきりしていると思うし、多くの検索にもかかわらずどこかで明確な答えを見つけることができませんでした。あなたの中には1000ポイントの評判があるかもしれませんが、私の謙虚なコレクションは貴重です。 – Gaelen

答えて

0

map on the 'zoom_changed` event (documentation)にイベントリスナーを追加します: ここでは自分のコードである

zoom_changed |引数:なし このイベントは、地図のズームプロパティが変更されたときに発生します。

google.maps.event.addListener(map, 'zoom_changed', function() { 
    var zoom = map.getZoom(); 
    if ((zoom > 12) && (zoom < 15)) { 
    historicalOverlay.setMap(map); 
    } else { 
    historicalOverlay.setMap(null); 
    } 
}); 

var historicalOverlay; 
 
var map; 
 

 
function initMap() { 
 
    map = new google.maps.Map(document.getElementById('map'), { 
 
    zoom: 13, 
 
    center: { 
 
     lat: 40.740, 
 
     lng: -74.18 
 
    } 
 
    }); 
 
    google.maps.event.addListener(map, 'zoom_changed', function() { 
 
    document.getElementById('zoom').innerHTML = "zoom =" + map.getZoom(); 
 
    var zoom = map.getZoom(); 
 
    if ((zoom > 12) && (zoom < 15)) { 
 
     historicalOverlay.setMap(map); 
 
    } else { 
 
     historicalOverlay.setMap(null); 
 
    } 
 
    }) 
 

 
    var imageBounds = { 
 
    north: 40.773941, 
 
    south: 40.712216, 
 
    east: -74.12544, 
 
    west: -74.22655 
 
    }; 
 

 
    historicalOverlay = new google.maps.GroundOverlay(
 
    'https://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg', 
 
    imageBounds); 
 
    historicalOverlay.setMap(map); 
 
} 
 
google.maps.event.addDomListener(window, "load", initMap);
html, 
 
body, 
 
#map { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="zoom"></div> 
 
<div id="map"></div>

+0

ありがとう@geocodezip。私はあなたのスクリプトを複数の状態(Image-Aが11から12、Image-Bが13から14、Image-Cが15から16)のように拡張しようとしました。私が見つけたのは、あなたがズームインしているかズームインしているかに応じていくつかの矛盾したオーバーラップがあることです。これはおそらく基本的なJavaScriptの構文ですが、 '((ズーム> 12)&&(ズーム<15))'には12と15の両方が含まれていますか、それとも13と14だけですか? – Gaelen

+1

13および14;あなたが12と1​​5を含むことを望むならば。 > =と<=を使用する必要があります。 – geocodezip

関連する問題