0

グーグルマップインスタンスをレンダリングするためのコンテナがあります。このコンテナの上に、検索ボックス(出発地と目的地)を備えた別のコンテナを描画します(HTML)。

原点を選択すると、マップにマーカーが描画されます([宛先]入力と同じ)。

次に、検索ボックスの右側にマーカーを表示するために、マップを「パン」する必要があります。

ここで、マーカーを配置するときに、fitboundsを使用して、マーカーがマップコンテナー内にあることを確認しますが、場合によっては、マーカーが検索ボックスの下に描画されます。

次に、「panBy」メソッドを使用して、検索ボックスの右側にマップの中心を描画しようとしましたが、常に機能するとは限りません。

2つのマーカーが常に表示され、検索ボックスの右側に描画されるようにするにはどうすればよいですか?

4

1 に答える 1

0

これを考慮してください: マーカーがマップの右側にあることを確認する必要があります。中心とともに NE 座標を取得すると、それをマーカーの位置と比較して、必要に応じて新しい中心を簡単に設定できます。

コード:

google.maps.event.addListener(marker, 'click', function() {
    var markerPos = this.getPosition(), center = map.getCenter(),
        mapNE = map.getBounds().getNorthEast();

    if(!(markerPos.lng() > center.lng() && markerPos.lng() < mapNE.lng())) { //marker is not on the right side
        //based on center and NE calulate pos to center the marker
        map.setCenter(new google.maps.LatLng(markerPos.lat(), (markerPos.lng() - (mapNE.lng() - center.lng())/2)));
    }
});
于 2013-02-15T20:45:03.353 に答える