0

Google マップの fitBounds を使用してから、map.setZoom を使用して 1 レベルズームインします (Google がマーカーに合わせて最適なズーム レベルを見つけた後)。その後、マーカーがビューポートに表示されているかどうかを確認したいのですが、どのように私はそうすることができますか?map.getBounds().contains が機能しないようです。このフィドルを見てください:フィドル

マーカーが表示されているかどうかを確認したい:

google.maps.event.addListenerOnce(map, "zoom_changed", function() {
        map.setZoom(map.getZoom()+2);
        if( map.getBounds().contains("35.700592","51.394773"))
alert('ok');   


         but there seems to be an error   
        //alert("the zoom level is now "+map.getZoom());
});
4

1 に答える 1

1

なぜ"35.700592","51.394773"google.maps.LatLngだと思いますか?カンマで区切られた2つの文字列です。

これは機能しません:

google.maps.event.addListenerOnce(map, "zoom_changed", function() {
    map.setZoom(map.getZoom()+2);
    if( map.getBounds().contains("35.700592","51.394773"))
    alert('ok');   
});

これは、「contains」(LatLngオブジェクトを使用)を使用する正しい方法です。

google.maps.event.addListenerOnce(map, "zoom_changed", function() {
    map.setZoom(map.getZoom()+2);
    if( map.getBounds().contains(new google.maps.LatLng(35.700592,51.394773)))
    alert('ok');                
});

また、マーカーを含む配列を作成し、マーカーで.getPosition()を使用することをお勧めします。

http://jsfiddle.net/Npu36/10/embedded/result/

于 2012-12-08T20:30:23.050 に答える