5

Google マップ API V3 を使用しています。ユーザーがマップをクリックすると、編集可能な 100px X 100px の長方形を作成したいと考えています。

ここで必要なのは、ユーザーがクリックする (x,y) ポイントと、(x+100 , y+100) の緯度と経度だけです。何か案が?

4

2 に答える 2

16

この関数は、渡す中心 (LatLng) の周りに 100 x 100 の長方形を作成する必要があります。

function setRectangle(center){
    var scale = Math.pow(2,map.getZoom());
    var proj = map.getProjection();
    var wc = proj.fromLatLngToPoint(center);
    var bounds = new google.maps.LatLngBounds();
    var sw = new google.maps.Point(((wc.x * scale) - 50)/ scale, ((wc.y * scale) - 50)/ scale);
    bounds.extend(proj.fromPointToLatLng(sw));
    var ne = new google.maps.Point(((wc.x * scale) + 50)/ scale, ((wc.y * scale) + 50)/ scale);
    bounds.extend(proj.fromPointToLatLng(ne));
    var opts = {
        bounds: bounds,
        map: map,
        editable:true
    }
    var rect = new google.maps.Rectangle(opts);

}
于 2012-08-09T11:21:12.837 に答える
7

使用できます

var overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);

var proj = overlay.getProjection();
var pos = marker.getPosition();
var p = proj.fromLatLngToContainerPixel(pos);

px と py からピクセルを取得できるようになりました

于 2012-08-09T09:48:28.520 に答える