2011-10-31 7 views
1

私は、人々がGoogle Maps上で四角形を描き、bottomLeftとtopRightの座標を保存させようとしています。Google Mapsでのジオフェンシング

私が(参照:http://code.google.com/intl/nl-NL/apis/maps/documentation/javascript/reference.html#Rectangle)私は長方形codewiseを描くことができます知っている私は私のDBから境界を読み込むことができます前に、私の質問はどのように、ある人々は最初のコースを外れ、それを:)

をその人自身を定義する必要がありますが、 Google Maps(API v3)で長方形を描き、bottomLeftとtopRightコーナーの座標を保存させることができますか?

答えて

3

既にイベントを調べることで機能するようになっています。作るために私に多くの時間を要した:)

これは私がそれを必要とする人々のためにそれをやった方法です:

function mapsInitialize() 
{ 
    startPoint = new google.maps.LatLng(lat,lon); 
    options = { zoom: 16, center: startPoint, mapTypeId: google.maps.MapTypeId.HYBRID}; 
    map = new google.maps.Map(document.getElementById("map_canvas"), options); 


    google.maps.event.addListener(map, 'click', function(event) { 
     if (drawing == true){ 
      placeMarker(event.latLng); 
      if (bottomLeft == null) { 
       bottomLeft = new google.maps.LatLng(event.latLng.Oa, event.latLng.Pa); 
      } 
      else if (topRight == null){ 
       topRight = new google.maps.LatLng(event.latLng.Oa, event.latLng.Pa); 
       drawing = false; 
       rectangle = new google.maps.Rectangle(); 

       var bounds = new google.maps.LatLngBounds(bottomLeft, topRight); 

       var rectOptions = { 
        strokeColor: "#FF0000", 
        strokeOpacity: 0.8, 
        strokeWeight: 2, 
        fillColor: "#FF0000", 
        fillOpacity: 0.35, 
        map: map, 
        bounds: bounds 
       }; 
       rectangle.setOptions(rectOptions); 
      } 
     } 
    }); 
} 

function placeMarker(location) { 
    var marker = new google.maps.Marker({ 
     position: location, 
     map: map 
    }); 
} 
2

私はあなたを正しく理解している - ユーザーにポリライン/ポリゴンを入力させる方法が必要です。もしそうなら、このexampleを見てください。そこでは、地図をクリックしてポリゴンを作成します。いくつかのクラスPolygonCreatorとjqueryを使用します。このメソッドを採用し、フォームフィールドに結果を保存することができます(JSONまたは独自のシリアル化メソッド)。

マップ上にポリゴンを表示するだけで、利点はgeometry.encoding libraryであり、エンコードされたポリラインをデータベースに格納します。また、空間クエリを使用する場合(例えば、ある点がポリゴンに含まれるかどうかを検出する場合など)は、MySQL spatial extensions、PostGISなどの空間拡張を使用することをお勧めします。MySQLでは、PolylineまたはPolygon型付きカラムOpenGIS形式に基づいています。率直に言って、ここではstackoverflowに関連する情報がたくさんあります。