因为最近在做GIS相关的工作,在工作过程中出现了很多的关于对空间坐标处理的问题,下面来记录一下:
一、已知空间坐标数据,获取当前空间坐标数据的面积:
获取空间面积存在两个方面,
一种是java通过oracle的空间函数进行获取
通过oracle空间坐标的:
SDO_GEOM.SDO_AREA函数进行获取。
SDO_GEOM.SDO_AREA( geom IN SDO_GEOMETRY, dim IN SDO_DIM_ARRAY [, unit IN VARCHAR2] ) RETURN NUMBER;
or
SDO_GEOM.SDO_AREA( geom IN SDO_GEOMETRY, tol IN NUMBER [, unit IN VARCHAR2] ) RETURN NUMBER;
函数的使用根据不同参数可以采取不同的使用方式,其中参数geom为空间坐标数据,参数dim为集合维度数组,tol为公差值,unit为单位,一版默认不填写
例如:
select SDO_GEOM.SDO_AREA(geom,0.05) area from tableNmae
第二种是通过将图层进行发布之后,通过openlayer的方式获取
通过openlayer的方式获取面积需要获取到图形的经纬度,然后进行计算,因为我这边使用的是
EPSG:4326,因为我们需要获取的单位是常规的平方米,所以需要进行转化,示例代码:
var sphere = new ol.Sphere(6378137); console.log(Math.abs(sphere.geodesicArea(feature