0

私はGoogleマップを使用してWebアプリケーションに取り組んでいますが、UIをマップの上に配置して、マップの中心がUIの下に部分的に配置されるようにしました。

下の画像のように中心点を右に設定することはできますか?ズームすると、マップの右半分がズームされます。

画像

/編集/

私はそれを見つけました、悲しいことに、David あなたのコードは私にとってはうまくいきませんでした。

しかし、パンビーメソッドを試してみたところ、この方法でうまくいき、ズームインすると右にパンするようになりました。ありがとう!

google.maps.event.addListener(map, 'zoom_changed', function() {
    setTimeout(moveMap, 10);
    });

    function moveMap() {
            map.panBy(300, 0);
    }
4

1 に答える 1

0

これはmapspanByメソッドを使用して可能です。この例では、マップを半分にカットしてから4分の1にカットします。新しい中心は、マップコンテナの3/4マークになります。このコードは、マップコンテナのサイズを拡大しながら、マップがフルサイズで読み込まれたが切り取られたときにユーザーマーカーを中央に配置できるようにするために開発されました。

あなたはあなたの位置を正しくするために数字をいじくり回すことができます。

var map, // Your map object
    mapWidth = $('#map').css('width'); // Width of map container
    nCentre,
    cCentre,
    visibleWidth = 200; // Visible area in PX you want map to be centered in

// Make sure width is an Int
mapWidth = parseInt(mapWidth.replace(/px$/, ''), 10);

// Get the center of viewable area
cCentre = visibleWidth / 2;

// Create the new position variable
nCentre = cCentre - (mapWidth / 2);

// Pan the map to the centre of the visible area
if (nCentre !== 0) {
    map.panBy(nCentre, 0);
}

要件については、表示領域とマップコンテナのオフセットを計算し、オフセットに基づいて新しい中心にパンするだけでよいため、おそらく2番目の計算を行う必要はありません。

于 2012-09-28T09:47:58.043 に答える