ESRI,空间数据处理,WKT,GeoJson

一、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)))"

二、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:面积、距离、包含、交叉等。

三、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

  // 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)))

资源:ESRI包 做空间数据处理

ESRI,空间数据处理,WKT,GeoJson的更多相关文章

  1. (转)R空间数据处理与可视化

    前言 很多朋友说在R里没法使用高德地图,这里给出一个基于leaflet包的解决方法. library(leaflet) # 添加高德地图 m <- leaflet() %>% addTil ...

  2. SuperMap空间数据处理与制图操作短视频汇总

    转自:http://blog.csdn.net/supermapsupport/article/details/70227669 空间数据处理与制图是GIS系统建设最基础的部分,这里利用超图桌面软件- ...

  3. Python空间数据处理环境搭

    Python空间数据处理环境搭 Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any la ...

  4. 利用ArcEngine开发地图发布服务,将mxd文档一键发布成wmts,并根据需要对地图进行空间查询,返回客户端geojson

    一直想开发一个软件取代ArcGIS Server,该软件使用ArcEngine开发,以Windows Service形式发布,部署在服务端上,解决wmts地图服务发布和空间查询的问题,经过不断的研究. ...

  5. JavaScript 空间分析库——JSTS和Turf【转】

    https://blog.csdn.net/neimeng0/article/details/80363468 前言 项目中有管线的空间拓扑关系查询需求,在npm中检索到JSTS和Turf两个Java ...

  6. 标准WPS框架下的空间信息处理服务部署方法

    笔者第一篇博客里面曾介绍过将专题图制作功能发布为WPS,但随着后面的研究,才发现那时候发布的不是真正WPS框架下的服务,而只是通过Servlet将其发布为可调用的网络服务,所以今天再具体介绍一下真正的 ...

  7. (数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇

    本文对应代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 geopandas是建立在GEOS.GDAL.P ...

  8. Data Lake Analytics的Geospatial分析函数

    0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial ...

  9. 开源GIS软件初探

    谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...

随机推荐

  1. Spring项目出现--Error:java: Compilation failed: internal java compiler error

    错误现象 使用Idea导入新项目或升级idea或新建项目时会出现以下异常信息: Error:java: Compilation failed: internal java compiler error ...

  2. mysql 双主复制 windows10

    1. 整体思路 MySQL开始复制是很简单的过程,不过,根据特定的应用场景,都会在基本的步骤上有一些变化.最简单的场景就是一个新安装的master和slave,整个过程如下:(1)在每个服务器上创建一 ...

  3. Hive日期函数总结(转学习使用)

    一.时间戳函数 1.获取当前时区的UNIX时间戳:select unix_timestamp(); 2.将指定时间转为UNIX时间戳: select unix_timestamp('2012-03-0 ...

  4. ElasticSearch教程——filter与query对比(转学习使用)

    一.数据准备 PUT /company/employee/2 { "address": { "country": "china", &quo ...

  5. LAMP搭建 转

    LAMP搭建 LAMP环境配置安装注意安装步骤及说明事项. (一)           安装gcc gcc glibc-devel glibc-headers kernel-headers libgo ...

  6. 使用Lists.partition切分性能优化

    项目实战 影拓邦电影同步中,使用Lists.partition按500条长度进行切分,来实现es的同步. 切分的List为 使用介绍及示例 将list集合按指定长度进行切分,返回新的List<L ...

  7. halcon案例学习之cbm_label_simple

    *cbm_label_simple 程序说明:*这个示例程序展示了如何使用基于组件的匹配来定位复合对象.在这种情况下,应该在图像中找到一个标签,用户既不知道其中的组件,也不知道它们之间的关系.因此,创 ...

  8. 基于Jmeter实现Rocketmq消息发送

    在互联网企业技术架构中,MQ占据了越来越重要的地位.系统解耦.异步通信.削峰填谷.数据顺序保证等场景中,到处都能看到MQ的身影. 而测试工程师在工作中,也经常需要和mq打交道,比如构造测试数据,触发某 ...

  9. 【SpringBoot1.x】RestfulCRUD

    SpringBoot1.x RestfulCRUD 文章源码 添加资源 将所有的静态资源都添加到 src/main/resources/static 文件夹下,所有的模版资源都添加到 src/main ...

  10. xtrabackup迁移mysql5.7.32

    问题描述:利用外部xtrabackup工具来做迁移mysql数据库,或者恢复数据库 xtrabackup迁移mysql 1.环境 mysql源库 mysql目标迁移库 IP 192.168.163.3 ...