zonas poligonos medir gratis google earth dibujar delimitar calcular addmarker google-maps map google-maps-api-3 gps polygon

google maps - poligonos - Área de cálculo de un polígono dibujado en google map



medir areas en google earth gratis (2)

Estoy buscando un algoritmo preciso o un servicio para calcular el área de superficie en la tierra donde los puntos se calculan en base a las coordenadas GPS.

Estoy utilizando la versión 3 de Google Map Api y estoy dibujando polígonos según las coordenadas registradas, pero no creo que las formas estándar de cálculo del área del polígono tengan en cuenta las pendientes (cuestas). ¿Necesito trabajar en contornos para tal cosa?

¿Hay algún servicio de terceros que pueda ser ArcGis o algún otro que tenga en cuenta las pendientes también?


La respuesta de brad

google.maps.geometry.spherical.computeArea(yourPolygon.getPath());

es correcto, pero cuidado, solo se aplica a polígonos que no se intersectan por sí mismos. Cuando el polígono comienza a intersecarse, las cosas van terriblemente mal. Puede probarlo con el enlace que Brad le dio a http://geojason.info/demos/line-length-polygon-area-google-maps-v3/ . Simplemente dibuja 4-5 líneas que se cruzan y comienza a jugar con los vértices. El cálculo del área definitivamente parecerá incorrecto.

Si no estás convencido, aquí hay un ejemplo:

var map; google.maps.visualRefresh = true; google.maps.event.addDomListener(window, ''load'', initialize); function initialize() { var mapOptions = { center : new google.maps.LatLng(55.874, -4.287), zoom : 16, mapTypeId : google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions) drawExample(); } function drawExample() { var pathLeft = [new google.maps.LatLng(55.874, -4.292), new google.maps.LatLng(55.875, -4.292), new google.maps.LatLng(55.875, -4.290), new google.maps.LatLng(55.876, -4.290), new google.maps.LatLng(55.876, -4.291), new google.maps.LatLng(55.874, -4.291)] var polygonLeft = new google.maps.Polygon({ path : pathLeft, map: map }); var areaLeft = google.maps.geometry.spherical.computeArea(polygonLeft.getPath()); var pathRight = [new google.maps.LatLng(55.874, -4.282), new google.maps.LatLng(55.875, -4.282), new google.maps.LatLng(55.875, -4.280), new google.maps.LatLng(55.8753, -4.2807), new google.maps.LatLng(55.876, -4.281), new google.maps.LatLng(55.874, -4.281)] var polygonRight = new google.maps.Polygon({ path : pathRight, map: map }); var areaRight = google.maps.geometry.spherical.computeArea(polygonRight.getPath()); console.log("areaLeft: " + areaLeft + "/nareaRight: " + areaRight); }

El informe de errores http://code.google.com/p/gmaps-api-issues/issues/detail?id=5624&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Stars%20ApiType%20Internal&start=700#makechanges