0

Я разработчик веб-приложения google map api для новичков, и у меня есть вопрос. Что уравнение (Javascript) найти мой маркер POIN в прямоугольной области полигона или нет это пример:Как найти позицию в прямоугольной области

enter image description here

и это мой сценарий:

$(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; 

Спасибо за любой ответ.

+0

Я нашел некоторую функцию для вычисления того, лежит ли данная точка внутри указанного полигона, это класс google.maps.geometry.poly по этой ссылке, я думаю, что эта работа для меня –

+0

В вашем коде нет полигонов в это – duncan

ответ

1

Если предположить, что по крайней мере (x0, y0) (x1, y1) и (x3, y3) известны, то:

if(x0>x3 && x0<x1 && y0>y3 && y0<y1) { 
    //(x0,y0) is in the rectangle 
} 
+0

да, я думаю, что спасибо за ответ –

0

Я предполагаю, что вы используете класс google.maps.Rectangle (вы не показали нам никакого кода, поэтому я могу ошибаться, но это было бы логично).

Затем вы можете вызвать функцию getBounds() на свой объект прямоугольника, чтобы получить его LatLngBounds.

Затем на этом объекте LatLngBounds вы можете вызвать функцию , чтобы определить, содержит ли она координаты вашей точки.

+0

ОК, извините за мою информацию, у меня есть координаты полигона, потому что я использую движок google map api для вызова векторных данных, и api обратный вызов координат моего полигона, но когда я помещаю маркер i необходимо найти эту точку маркера, в которой находится прямоугольник многоугольника. –

+0

Можете ли вы изменить свой вопрос, чтобы включить свой код? – duncan

+0

ОК, я редактирую свой вопрос, я нашел какую-то функцию для вычисления того, находится ли данная точка внутри указанного многоугольника, это класс google.maps.geometry.poly на этом [link] (https://developers.google.com/maps/documentation/javascript/reference # poly) Я думаю, эта работа для меня –

Смежные вопросы