Geometry Openlayers几何如何计算从平方度到平方公里的面积?

Geometry Openlayers几何如何计算从平方度到平方公里的面积?,geometry,transform,openlayers,map-projections,Geometry,Transform,Openlayers,Map Projections,我从webservice获得了multypoligon,并尝试使用以下代码计算该poligon的面积: var poly = new OpenLayers.Geometry.MultiPolygon(poligon); var area = geom.getArea(); 但那个会以平方度为单位返回我的面积,我们的投影是EPSG:3243,我试图使用这个函数 OpenLayers.Layer.SphericalMercator.forwardMercator 但这对我没有多大帮助,有没有其他

我从webservice获得了multypoligon,并尝试使用以下代码计算该poligon的面积:

var poly = new OpenLayers.Geometry.MultiPolygon(poligon);
var area = geom.getArea();
但那个会以平方度为单位返回我的面积,我们的投影是EPSG:3243,我试图使用这个函数

OpenLayers.Layer.SphericalMercator.forwardMercator
但这对我没有多大帮助,有没有其他解决方案或其他提示


干杯

您应该使用GeodesicArea()函数并为您提供投影,以防止损坏WGS84:

大概是这样的:

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

您应该使用GeodesicArea()函数并为您提供投影,以防止损坏WGS84:

大概是这样的:

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

有一个解决方案可以使用其他函数getGeodesicArea(),看起来像这个var area=(geom.getGeodesicArea()/1000000)有一个解决方案可以使用其他函数getGeodesicArea()然后它看起来像这个var区域=(geom.getGeodesicArea()/1000000)