Расчет площади EPSG:900913. Неверное значение.

Ответить
Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Расчет площади EPSG:900913. Неверное значение.

Сообщение Winsent » 12 окт 2010, 14:25

При попытке рассчитать площадь для полигона в проекции EPSG:900913 (Google) получаю неверное значение (геометрическую площадь). Для данного полигона площадь должна составлять 1192 км. кв.

Код: Выделить всё

select st_area(geometryFromText('POLYGON((4160620.3228726005 7472178.1357075,4160620.3228726005 7541277.2092649,4215043.4870019 7541277.2092649,4215043.4870019 7472178.1357075,4160620.3228726005 7472178.1357075))',900913)); 
Получаю:

Код: Выделить всё

st_area
---------------
3760590221.39453

Версия:
"PostgreSQL 8.4.4, compiled by Visual C++ build 1400, 32-bit"
"POSTGIS="1.5.1" GEOS="3.2.0-CAPI-1.6.0" PROJ="Rel. 4.6.1, 21 August 2008" LIBXML="2.7.6" USE_STATS"

Код: Выделить всё

spatial_ref_sys

WKT:
 'PROJCS["WGS84 / Simple Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS_1984", 6378137.0, 298.257223563]],PRIMEM["Greenwich", 0.0],UNIT["degree", 0.017453292519943295],AXIS["Longitude", EAST],AXIS["Latitude", NORTH]],PROJECTION["Mercator_1SP_Google"],PARAMETER["latitude_of_origin", 0.0],PARAMETER["central_meridian", 0.0],PARAMETER["scale_factor", 1.0],PARAMETER["false_easting", 0.0],PARAMETER["false_northing", 0.0],UNIT["m", 1.0],AXIS["x", EAST],AXIS["y", NORTH],AUTHORITY["EPSG","900913"]]'

proj4:
'+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs');

Winsent
Новоприбывший
Сообщения: 11
Зарегистрирован: 27 сен 2007, 00:48
Репутация: 0
Откуда: Москва
Контактная информация:

Re: Расчет площади EPSG:900913. Неверное значение.

Сообщение Winsent » 12 окт 2010, 14:50

UPD:
При перепроецировании в UTM zone 37, получаем правильный результат:

Код: Выделить всё

select st_area(st_transform(geometryFromText('POLYGON((4160620.3228726005 7472178.1357075,4160620.3228726005 7541277.2092649,4215043.4870019 7541277.2092649,4215043.4870019 7472178.1357075,4160620.3228726005 7472178.1357075))',900913),32637)); 
Можно ли как-то обойтись без перепроецирования?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Расчет площади EPSG:900913. Неверное значение.

Сообщение Максим Дубинин » 13 окт 2010, 05:37

хм, разные проекции - разные площади

обойтись без перепроецирования это как обойтись без перевода при понимании другого языка.
пристегивайтесь, турбулентность прямо по курсу

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей