ESRI包 做空间数据处理

ESRI包做空间数据处理

1.WKT

WKT(well-known text)是一种文本标记语言,用于表示矢量数据中的几何对象,在数据传输与数据库存储时,常用到它的二进制形式,即WKB(well-known binary)。WKT与WKB在GIS中的重要作用在于,它们能利用文本简洁明了的表达矢量空间要素的几何信息,使得几何信息能以字段的形式存储于数据库中。

WKT 示例

"MULTIPOLYGON (((120.309929 36.060021,120.426772 36.020983,120.309929 36.026087,120.309929 36.060021)))"

2.GeoJson

GeoJSON是一种用于编码各种地理数据结构的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON里的特征包含一个几何对象及其其他属性,geoJson可以很好的结合前端展示。

geoJson 示例

{
  "type": "Feature",
  "geometry": {
   "type":"Polygon",
   "coordinates":[[[120.309929,36.060021],[120.309929,36.026087],[120.426772,36.020983],[120.309929,36.060021]]]}
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

WKT和GeoJson都是地理位置信息处理常用的工具,二者都支持点、线、面、多点、多面等几何类型,在处理GIS、AIS等数据的时候经常需要二者相互转换结合使用,常用的工具是geotools和ESRI。ESRI比较轻量级。 可以应用于Hadoop、HIve、Storm等大数据平台的开发。支持GeoJson、WKT、Shape等数据格式的读写与相互转换。也包含空间数据集操作的API:面积、距离、包含、交叉等。

esri具体的API可以参照 ESRI的Library wiki
本文提供一个示例,最常用的功能是WKT与GeoJson格式的相互转化:

 val wktString = "MULTIPOLYGON (((120.309929 36.060021, 120.426772 36.020983,120.309929 36.026087,120.309929 36.060021)))"
 
 // WKT 转GeoJson
 val geom: Geometry = OperatorImportFromWkt.local
      .execute(WktImportFlags.wktImportDefaults, Geometry.Type.Polygon, wktString, null)
      
 val geojson: String = OperatorExportToGeoJson.local().execute(geom)

 println(geojson)

返回的GeoJson只包含‘Type’和‘coordinates’属性。

{"type":"Polygon","coordinates":[[[120.309929,36.060021],[120.309929,36.026087],[120.426772,36.020983],[120.309929,36.060021]]]}
  // GeoJson 转 WKT
   val geometry: Geometry = OperatorImportFromGeoJson.local()
      .execute(GeoJsonImportFlags.geoJsonImportDefaults, Geometry.Type.Polygon, geojson, null)
      .getGeometry

   val wktStringParsed = OperatorExportToWkt.local()
      .execute(WktImportFlags.wktImportDefaults, geometry, null)

   println(wktStringParsed)
MULTIPOLYGON (((120.309929 36.060021, 120.309929 36.026087, 120.426772 36.020983, 120.309929 36.060021)))

*注:构建多边形的时候点集之间要形成闭环。

更多方法请参考 :

https://github.com/Esri/geometry-api-java

猜你喜欢

转载自blog.csdn.net/k_wzzc/article/details/86031453