Saltar al contenido

¿Está LatLng dentro de un polígono?

Queremos darte la mejor solución que descubrimos por todo internet. Nosotros queremos que te resulte de utilidad y si deseas aportar alguna mejora hazlo con libertad.

Solución:

Utilice el método containsLocation(punto:LatLng, polígono:Polígono).

containsLocation(punto:LatLng, polígono:Polígono) booleano Calcula si el punto dado se encuentra dentro del polígono especificado.

violín de prueba de concepto

fragmento de código:

function checkInPolygon(marker, polygon) 
  var infowindow = new google.maps.InfoWindow();
  var html = "";
  if (google.maps.geometry.poly.containsLocation(marker.getPosition(), polygon)) 
    html = "inside polygon";
   else 
    html = "outside polygon";
  
  infowindow.setContent(html);
  infowindow.open(map, marker);


var map;
var coord1 = new google.maps.LatLng(26.194876675795218, -69.8291015625);
var coord2 = new google.maps.LatLng(33.194876675795218, -63.8291015625);

function initialize() 
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), 
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    );
  bermudaTriangle.setMap(map);
  var bounds = new google.maps.LatLngBounds();
  for (var i = 0; i < bermudaTriangle.getPath().getLength(); i++) 
    bounds.extend(bermudaTriangle.getPath().getAt(i));
  
  bounds.extend(coord1);
  bounds.extend(coord2);
  var marker1 = new google.maps.Marker(
    map: map,
    position: coord1
  );
  var marker2 = new google.maps.Marker(
    map: map,
    position: coord2,
  );
  map.setCenter(bounds.getCenter());
  map.setZoom(3);
  checkInPolygon(marker1, bermudaTriangle);
  checkInPolygon(marker2, bermudaTriangle);

google.maps.event.addDomListener(window, "load", initialize);

var bermudaTriangle = new google.maps.Polygon(
  paths: [
    new google.maps.LatLng(25.774252, -80.190262),
    new google.maps.LatLng(18.466465, -66.118292),
    new google.maps.LatLng(32.321384, -64.75737),
  ]
);
html,
body,
#map_canvas 
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px

Si la API de Google Maps no tiene ningún método específico para esto, deberá encontrar o escribir uno propio. Es un problema común en los gráficos por computadora, y si busca en Google "prueba de aciertos de polígono", encontrará una gran cantidad de información. Esta respuesta SO parece razonablemente completa.

¡Haz clic para puntuar esta entrada!
(Votos: 4 Promedio: 4.3)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *