0

私は Google マップ API Web アプリケーションの初心者開発者で、質問があります。どの方程式(Javascript)が長方形のポリゴン領域で私のマーカーポイントを見つけるか、これは例です:

ここに画像の説明を入力

これは私のスクリプトです:

$(document).ready(function(){
    $('#map_canvas').height($('#content').height());
});

var map;
var tableID = 'myid';
var auth = true;
var cloudData;
var authLink;
var rectangleCloud = new Array();

function initialize(){
  result = JSON.parse(token);
  getFeature(result.access_token);
  showMap(result.access_token);

}

function showMap(authResult) {
  // Create a new Google Maps API Map
  var mapOptions = {
    center: new google.maps.LatLng(13.74657604702232,100.53490161895752),
    zoom: 6,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("map_canvas"),
      mapOptions);
  //console.log(getFeatureById(mapsEngineLayer.featureId));+

  google.maps.event.addListener(mapsEngineLayer, 'bounds_changed', function() {
     map.fitBounds(mapsEngineLayer.get('bounds'));
  });

  //i think add equation at this.
  window.setTimeout(refreshToken, authResult.expires_in * 1000);

}

function getFeature(authResult){
   // List the details of a specific Google Maps Engine Map.
  var url = "https://www.googleapis.com/mapsengine/v1/tables/"+tableID+"/features";

  jQuery.ajax({
    url: url,
    dataType: 'json',
    headers: {
      'Authorization': 'Bearer ' + authResult
    },
    success: function(response) {
      // Log the details of the Map.  
      cloudData = response;
      console.log(cloudData.features);
      //this is a data callback from mapengine api
    },
    error: function(response) {
      response = JSON.parse(response.responseText);
      console.log("Error: ", response);
      window.location(authLink);
    }
  });
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=visualization&language=th&callback=initialize';
  document.body.appendChild(script);
}

function createButtonAuth(){
  console.log("in");
  var inDiv = document.getElementById('mapWindown');
  var iDiv = document.createElement('div');
      iDiv.id = 'buttonAuth';
      iDiv.className = 'buttonAuth-style';
      iDiv.innerHTML = "<button  class='btn btn-large btn-block btn-primary' type='button'><a href='$authUrl'>Authorize this application</a></button>";
      iDiv.appendChild(inDiv);
}

window.onload = loadScript;

回答ありがとうございます。

4

2 に答える 2

1

少なくとも (x0,y0) (x1,y1) と (x3,y3) が既知であると仮定すると、次のようになります。

if( x0>x3 && x0<x1 && y0>y3 && y0<y1 ) {
    //(x0,y0) is in the rectangle
}
于 2013-10-08T08:04:56.933 に答える
0

私はあなたが google.maps.Rectangle クラスを使用していると仮定しています (あなたはあなたのコードを私たちに見せていないので、間違っているかもしれませんが、それは論理的です)。

次に、長方形オブジェクトで関数を呼び出して、getBounds()その LatLngBounds を取得できます。

次に、その LatLngBounds オブジェクトでcontains()関数を呼び出して、ポイントの座標が含まれているかどうかを判断できます。

于 2013-10-08T08:24:51.790 に答える