2

つまり、地図を固定位置の中央に配置したいのです。

map.setCenter(markerCliccato.getPosition());

以下(Y軸)100px下。出来ますか?または、この「仮想」ポイントのLat / Lngが必要ですか?

これは、インフォウィンドウの高さが非常に高く、マップの上から100ピクセルの位置に配置する必要があるためです。マップ内の他のマーカーで問題が発生する可能性があるため、情報ウィンドウで「マージン」を使用することはできません。

私はこの点をLat/Lngとして持っています:https ://maps.google.com/?q = 54.572062、-3.038818

しかし、私は地図をhttps://maps.google.com/?q=54.486793,-3.042046の中央に配置したいと思います(これは、地図上で、私のポイントからほぼ100px下にあります)

4

1 に答える 1

2

わかりました、私は写真を投稿する必要があります:)

これはクリックの前です

前

そしてこれは後です

後

灰色の領域はなく、マップはすべてレンダリングされます。

また、マーカーを表示するには、サイトが現在地を追跡できるようにする必要があります。

function offsetCenter(latlng, offsetx, offsety) {
    var scale = Math.pow(2, map.getZoom());
    var nw = new google.maps.LatLng(
    map.getBounds().getNorthEast().lat(), map.getBounds().getSouthWest().lng());

    var worldCoordinateCenter = map.getProjection().fromLatLngToPoint(latlng);
    var pixelOffset = new google.maps.Point((offsetx / scale) || 0, (offsety / scale) || 0)

    var worldCoordinateNewCenter = new google.maps.Point(
    worldCoordinateCenter.x - pixelOffset.x, worldCoordinateCenter.y + pixelOffset.y);

    var newCenter = map.getProjection().fromPointToLatLng(worldCoordinateNewCenter);

    map.setCenter(newCenter);
}

ここで動作することを確認してください:http://jsfiddle.net/RASG/vA4eQ/

FF 15、IE 9、Chrome21でテスト済み

于 2012-11-05T15:13:48.383 に答える