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. Java学习日报7.23

    import java.util.Scanner;public class LandP {public static void main(String args[]) { System.out.pri ...

  2. JavaScript 函数节流和函数去抖

    概念 函数防抖(debounce) 当调用动作过n毫秒后,才会执行该动作,若在这n毫秒内又调用此动作则将重新计算执行时间 函数节流(throttle) 预先设定一个执行周期,当调用动作的时刻大于等于执 ...

  3. Windows10搭建本地ftp服务器

    首先要有一个win10专业版的操作系统,连接上互联网... 一.首先打开控制面板选择程序,再选择"启用或关闭windows功能" 二.在"Windows功能"中 ...

  4. TurtleBot3 Waffle (tx2版华夫)(10)自主导航(A2激光雷达)

    1)[Remote PC] 启动roscore $ roscore 2)[TurBot3] 启动turbot3 $ roslaunch turbot3_bringup minimal.launch 3 ...

  5. 远程分支删除后,git branch -a还能看到的解决方法

    详情https://www.cnblogs.com/wangiqngpei557/p/6058115.html 大家在删除远程分支后 git branch -a 还是可以看到已删除的远程分支,时间一长 ...

  6. java的多线程:线程安全问题

    什么是线程安全? 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. 抢火车的例子: ...

  7. day123:MoFang:直播间列表信息的前后端实现&创建房间的前后端实现

    目录 1.服务端提供所有直播间的列表信息 2.前端显示房间列表 3.创建房间 1.服务端提供所有直播间的列表信息 1.marshmallow.py from marshmallow_sqlalchem ...

  8. Docker学习笔记之搭建Docker私有仓库

    Docker仓库服务器名为Docker注册(registry)服务器.可以使用docker push命令将镜像上传到注册服务器,也可以使用docker pull命令下载服务器的镜像. Docker注册 ...

  9. logback为不同的包或类指定输出日志文件

    对日志分割的常见需求是,需要按不同的等级进行输出,这个的配置方式类似如下,在appender节点内添加内容 <appender name="FILE-INFO" class= ...

  10. 【Linux】rsync中sending incremental file list时间优化

    每次使用rsync的时候,前面出现sending incremental file list 这句之后要等待很长时间 查了很多帖子和官方文档后,发现是-c这个选项的问题, -v, --verbose ...