Estoy realizando un cálculo simple en un polígono que se sabe que tiene aproximadamente 6226 km ^ 2 de área. Se almacena en una columna de Geografía (WGS84 SRID).
La consulta es:
select st_astext(col), st_area(col) area from table
y vuelve:
"POLYGON((-180 58.282525588539,-178.916399160189 57.4759784390599,-178.191728834624 58.5761461944577,-180 58.282525588539))" | 5807028547.33813
El área devuelta (5807028547.33813) parece ser mm ^ 2 y no km ^ 2? La documentación http://postgis.net/docs/ST_Area.html establece que "el área predeterminada se determina en un esferoide con unidades en metros cuadrados"
¿Es esto un error de documentación, o es correcto lo anterior y fundamentalmente estoy malinterpretando la funcionalidad?
ST_Area (geometría) calcula el área del polígono como WGS1984, SIN proyectar a igual área esfera / puntos suspensivos (si usa la Geometría de tipo sql en lugar de Geografía). El resultado se mide en la unidad en el SRID de la geometría.
ST_Area (geografía) calcula el área del polígono como WGS1984, CON proyección de área igual a la esfera / puntos suspensivos (si se utiliza el tipo SQL Geografía en lugar de geometría). El resultado se mide en metros cuadrados. Para pasar de m 2 a km 2 , debe dividir m 2 por 1000 2 (1000 metros en un kilómetro; se cuadra porque es un área, por lo que 1000 * 1000, también conocido como 1000 2 ).
ST_Area (geometría, verdadero / falso) calcula el área (en m 2 ) con coordenadas proyectadas en el sistema de coordenadas CylindricalEqualAreaworld (preservar el área, tiene sentido si desea calcular el área).
La diferencia entre verdadero / falso es la precisión.
ST_Area (geog, false) usa una esfera más rápida pero menos precisa.
Digamos, cuando uso este polígono:
Obtengo los siguientes resultados:
Creo que la parte importante que debe extraerse de los documentos es esta:
Por lo tanto, debe tener cuidado al elegir la geografía y NO la geometría.
Si usa geometría, NECESITA usar las sobrecargas verdaderas / falsas de ST_Area.
En C #, obtengo más o menos lo mismo que cierto con KnownCoordinateSystems.Projected.World.CylindricalEqualAreaworld, y false parece ser un mundo de radio medio-terrestre, algo cercano a WorldSpheroid.CylindricalEqualAreasphere o WorldSpheroid.EckertIVsphere, pero es apagado por 2 m 2 , por lo que parece hacer lo suyo.
por ejemplo, obtienes un ajuste cercano a falso con el radio medio:
WebMercator es el sistema de coordenadas utilizado por Google-Maps.
El nombre oficial de este sistema de coordenadas es EPSG: 3857.
Lo que hace exactamente PostGIS está documentado aquí:
https://postgis.net/docs/ST_Area.html
Y los detalles en el código fuente se pueden encontrar aquí:
http://postgis.net/docs/doxygen/2.2/dc/d52/geography__measurement_8c_a1a7c48d59bcf4ed56522ab26c142f61d.html
y aquí:
http://postgis.net/docs/doxygen/2.2/d1/dc0/lwspheroid_8c_a29d141c632f6b46587dec3a1dbe3d176.html#a29d141c632f6b46587dec3a1dbe3d176
Proyección Albers:
Proyección cilíndrica de igual área:
fuente