20

マーカーがマップの外側にある場合、マップを再センタリング (フォーカス) する方法を探しています。たとえば、ビューエリアにないマーカーをクリックすると... マーカー 1: ニューヨーク マーカー 2: サンフランシスコ

V2では私はこのようにしています...しかし、v3の場合、containsLatLngには追加のライブラリが必要であり、私にとって は機能しませんでした.マーカー位置に焦点を合わせる他の方法はありますか??

アップデート:

        if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) {
        var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng()) / 2;
        var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat()) / 2;

        map.panTo(marker.getPosition());
        //map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng));

        if (!map.getBounds().contains(marker.getPosition())){
            map.zoomOut();
        } 
    }
4

1 に答える 1

52

必要なメソッドは、containsLatLng() ではなく、contains() です。map.getBounds().contains(marker.getPosition())

マップの setCenter() または panTo() メソッドを使用して、マーカーの位置を中央に配置できますmap.setCenter(marker.getPosition())map.panTo(marker.getPosition())

したがって、あなたが何をしようとしているのかを正しく理解していれば、次のようになります。

if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double &  
    map.setCenter(marker.getPosition());  
    //OR map.panTo(marker.getPosition());  
}
于 2012-06-06T15:56:44.690 に答える