1

ここに示すように、Google マップ API V3 を使用して、具体的には描画ツールを使用します(長方形のみが有効になっています)。

https://developers.google.com/maps/documentation/javascript/overlays#drawing_tools

しかし、次の質問があります。

  1. ユーザーが同じページのリンクをクリックすることで、ポリゴンの左上隅と右下隅の緯度経度を取得し、URL に送信できますか?

http://foo.bar/script.php?latoftopleft=17.4479216&longoftopleft=78.37720100000001&latofbotright=17.443172404867163&longofbotright=78.39395944192506

4

1 に答える 1

2

長方形の取得

ユーザーが描画した四角形を取得する 1 つの方法は、Drawing Eventsを使用することです。

var rectangle;
google.maps.event.addListener(drawingManager, 'rectanglecomplete', function(newRect) {
    rectangle = newRect;
});

ユーザーが四角形を描画するたびに、Rectangle オーバーレイ オブジェクトがrectangleグローバル変数に割り当てられます。

Rectangle に関する情報の抽出

google.maps.Rectangleクラスには、オブジェクトgetBounds()を返すメソッドがあります。メソッドとメソッドをLatLngBounds使用して、左上隅と右下隅の座標を推定できます。getNorthEast()getSouthWest()

onclickイベントをリンクにバインドできます。クリック イベント ハンドラーは次のようになります。

function clickEventHandler(event) {
    // check if the rectangle has been assigned
    if (rectangle == undefined) {
        alert('No rectangles have been drawn yet!');
        return;
    }

    // obtain the bounds and corner coordinates of the rectangle
    var rectangleBounds = rectangle.getBounds();
    var northEast = rectangleBounds.getNorthEast();
    var southWest = rectangleBounds.getSouthWest();

    // deduce the top-left and bottom-right corner coordinates
    var topLeft = new google.maps.LatLng(northEast.lat(), southWest.lng());
    var bottomRight = new google.maps.LatLng(southWest.lat(), northEast.lng());

    // Now that you have the coordinates, all you have to do is use an AJAX
    // technique of your choice to send the HTTP request to script.php.
    // ...
}

参考文献:

于 2012-10-08T07:32:02.440 に答える