0

情報ウィンドウが半分表示されているため、地図の端にあるマーカーを表示したくない (情報ウィンドウを表示している間は地図をドラッグしたくない)。このために、元の境界よりも少し小さいマップの境界を計算するにはどうすればよいですか (たとえば、すべての側面から1cmまたは40pxの場合)。

または、より良い解決策はありますか?

4

1 に答える 1

0

わかりました...コードは次のとおりです。

function setRectangle(center){
     var scale = Math.pow(2,MainMap.getZoom());
     var proj = MainMap.getProjection();
     var wc = proj.fromLatLngToPoint(center);
     var bounds = new google.maps.LatLngBounds();
     var sw = new google.maps.Point(((wc.x * scale) - (($('#google-map-canvas').width() - 75)*0.5))/ scale, ((wc.y * scale) - (($('#google-map-canvas').height() - 75)*0.5))/ scale);
bounds.extend(proj.fromPointToLatLng(sw));
var ne = new google.maps.Point(((wc.x * scale) + (($('#google-map-canvas').width() - 75)*0.5))/ scale, ((wc.y * scale) + (($('#google-map-canvas').height() - 75)*0.5))/ scale);
bounds.extend(proj.fromPointToLatLng(ne));
     var opts = {
        strokeColor: "#FF0000",
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: "#FF0000",
        fillOpacity: 0,
        bounds: bounds,
        map: MainMap
     };
enclosedRectangle = new google.maps.Rectangle(opts);
}
于 2013-05-16T06:26:10.903 に答える