Геометрия Openlayers, как рассчитать площадь от квадратных градусов до квадратных километров?

Я получаю мультиполигон из веб-службы и пытаюсь вычислить площадь для этого полигона с помощью следующего кода:

var poly = new OpenLayers.Geometry.MultiPolygon(poligon);
var area = geom.getArea();

Но это возвращает мне площадь в квадратных градусах, наша проекция EPSG: 3243. Я пытался использовать функцию

OpenLayers.Layer.SphericalMercator.forwardMercator

Но это мне не очень помогло, есть ли другое решение или какой-то другой намек?

Ваше здоровье!


person vaske    schedule 13.05.2011    source источник
comment
Существует решение использовать другую функцию getGeodesicArea(), и тогда она будет выглядеть так: var area = (geom.getGeodesicArea()/1000000)   -  person vaske    schedule 13.05.2011


Ответы (1)


Вы должны использовать функцию GeodesicArea() и передать вам проекцию, чтобы предотвратить дефаул WGS84:

http://dev.openlayers.org/docs/files/OpenLayers/Geometry/Polygon-js.html#OpenLayers.Geometry.Polygon.getGeodesicArea

getGeodesicArea: function( projection )

что-то вроде этого:

var projection = new OpenLayers.Projection("EPSG:3243");
var poly = new OpenLayers.Geometry.MultiPolygon(poligon);
var area = poly.getGeodesicArea( projection );
person Jeroen    schedule 27.11.2012