ESRI,空间数据处理,WKT,GeoJson
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,空间数据处理,WKT,GeoJson的更多相关文章
- (转)R空间数据处理与可视化
前言 很多朋友说在R里没法使用高德地图,这里给出一个基于leaflet包的解决方法. library(leaflet) # 添加高德地图 m <- leaflet() %>% addTil ...
- SuperMap空间数据处理与制图操作短视频汇总
转自:http://blog.csdn.net/supermapsupport/article/details/70227669 空间数据处理与制图是GIS系统建设最基础的部分,这里利用超图桌面软件- ...
- Python空间数据处理环境搭
Python空间数据处理环境搭 Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any la ...
- 利用ArcEngine开发地图发布服务,将mxd文档一键发布成wmts,并根据需要对地图进行空间查询,返回客户端geojson
一直想开发一个软件取代ArcGIS Server,该软件使用ArcEngine开发,以Windows Service形式发布,部署在服务端上,解决wmts地图服务发布和空间查询的问题,经过不断的研究. ...
- JavaScript 空间分析库——JSTS和Turf【转】
https://blog.csdn.net/neimeng0/article/details/80363468 前言 项目中有管线的空间拓扑关系查询需求,在npm中检索到JSTS和Turf两个Java ...
- 标准WPS框架下的空间信息处理服务部署方法
笔者第一篇博客里面曾介绍过将专题图制作功能发布为WPS,但随着后面的研究,才发现那时候发布的不是真正WPS框架下的服务,而只是通过Servlet将其发布为可调用的网络服务,所以今天再具体介绍一下真正的 ...
- (数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇
本文对应代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 geopandas是建立在GEOS.GDAL.P ...
- Data Lake Analytics的Geospatial分析函数
0. 简介 为满足部分客户在云上做Geometry数据的分析需求,阿里云Data Lake Analytics(以下简称:DLA)支持多种格式的地理空间数据处理函数,符合Open Geospatial ...
- 开源GIS软件初探
谈到GIS软件,首先让我们想到的便是GIS界的龙头大哥ESRI公司旗下的ArcGIS产品,从最初接触的version 9.2到如今的version 10.1,其发展可谓风生水起.MapInfo软件也不 ...
随机推荐
- CentOS 7 Xinetd服务安装配置
CentOS 7 Xinetd服务安装配置 目录 CentOS 7 Xinetd服务安装配置 一.Linux守护进程与初始化进程 1. 什么是守护进程 2. 什么是初始化 二.Linux独立启动进程和 ...
- 11. const 修饰成员函数
const 限定只读,对函数的实参进行保护 常数据成员:必须出现在类的定义体中,常数据成员必须进行初始化,并且不能被更新,但常数据成员的初始化只能通过构造函数的初始化列表进行 1. 常函数 成员函数加 ...
- 聊聊风口上的 eBPF
eBPF 是一个用于访问 Linux 内核服务和硬件的新技术,由于其灵活性和高性能等特点,被迅速用于网络.出错.跟踪以及防火墙等多场景.目前国内已有少数企业开始尝试将 eBPF 引入生产实践,又拍云也 ...
- ElasticSearch教程——自定义分词器(转学习使用)
一.分词器 Elasticsearch中,内置了很多分词器(analyzers),例如standard(标准分词器).english(英文分词)和chinese(中文分词),默认是standard. ...
- hdp、cdh版本大数据maven仓库
Hdp版本: <repositories> <repository> <id>nexus</id> <name>local private ...
- P3714 [BJOI2017]树的难题 点分治+线段树合并
题目描述 题目传送门 分析 路径问题考虑点分治 对于一个分治中心,我们可以很容易地得到从它开始的一条路径的价值和长度 问题就是如何将不同的路径合并 很显然,对于同一个子树中的所有路径,它们起始的颜色是 ...
- 【MyBatis】MyBatis 延迟加载策略
MyBatis 延迟加载策略 文章源码 什么是延迟加载 延迟加载,就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据,也被成为懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提 ...
- LeetCode142 环形链表 II
给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 说明:不允许修改给定的链表. 进阶:你是否可以不用额外空间解决此题? //章节 - 链表 //二.双指针技巧 //2.环 ...
- Java JVM——9.方法区
前言 方法区是运行时数据区的最后一个部分: 从线程共享与否的角度来看: 大家可能在这里有些疑惑,方法区和元空间的关系到底是怎样的?请往下看,下面会为大家解惑. 栈.堆.方法区的交互关系 下面就涉及了对 ...
- RandomForest 随机森林算法与模型参数的调优
公号:码农充电站pro 主页:https://codeshellme.github.io 本篇文章来介绍随机森林(RandomForest)算法. 1,集成算法之 bagging 算法 在前边的文章& ...