空间数据WKT、WKB、GeoJSON的区分和转换
创作时间:
作者:
@小白创作中心
空间数据WKT、WKB、GeoJSON的区分和转换
引用
CSDN
1.
https://m.blog.csdn.net/haobindayi/article/details/143161820
空间数据WKT、WKB、GeoJSON的区分和转换
在项目开发中,经常需要将空间信息存储到数据库,并对不同格式的空间数据进行转换。本文将详细介绍WKT、WKB、GeoJSON的数据格式、相互转换以及在项目中的常用方法。
1. WKT、WKB、GeoJSON简介
1.1 名词解释
WKT(Well-Known Text):由开放地理空间联盟(OGC)定义的标准格式,主要用于在GIS系统之间交换地理空间数据。WKT是文本表示形式,便于阅读和编辑。
WKB(Well-Known Binary):也是由OGC定义的标准格式,是WKT的二进制表示形式。WKB更适合计算机处理和数据存储,尤其是在对存储空间和传输效率有较高要求的场景中。
GeoJSON:由互联网工程任务组(IETF)定义的基于JSON的地理空间数据交换格式。GeoJSON特别适合Web应用程序使用,尤其是与JavaScript相关的技术栈兼容性更好。
特征 | WKT | WKB | GeoJSON |
|---|---|---|---|
格式类型 | 文本(字符串) | 二进制 | 文本(JSON结构) |
可读性 | 人类可读 | 机器友好,人类难以解读 | 人类可读,特别是对熟悉JSON的人 |
体积大小 | 相对较大 | 相对较小 | 取决于数据,通常比WKT大,但具有良好的压缩机制 |
使用场景 | 数据交换、数据库存储(便于阅读和编辑) | 数据交换、数据库存储(空间效率高) | Web应用程序、APIs、数据交换 |
标准 | OGC定义 | OGC定义 | IETF定义 |
1.2 数据基本格式
格式类型 | 示例 |
|---|---|
WKT | POINT(30 10) |
WKB | 通常不直接显示,以二进制存储,但十六进制表示可能是 01010000000000000000003F400000000000002440 |
GeoJSON | { “type”: “Point”, “coordinates”: [30, 10] } |
2. WKT与GeoJSON的详细对比
2.1 点(Point)和多点(MultiPoint)
2.1.1 WKT表示
- 点(Point):
POINT (30 10) - 多点(MultiPoint):
MULTIPOINT ((10 40), (40 30), (20 20), (30 10))
2.1.2 GeoJSON表示
点(Point)数据格式:
{ "type": "Point", "coordinates": [30, 10] }点(Point)数据样例:
{ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": {}, "geometry": { "coordinates": [116.39689300815166, 39.973524821953276], "type": "Point" } }] }多点(MultiPoint)数据格式:
{ "type": "MultiPoint", "coordinates": [[10, 40], [40, 30], [20, 20], [30, 10]] }多点(MultiPoint)数据样例:
{ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": {}, "geometry": { "coordinates": [ [116.39689300815166, 39.973524821953276], [116.42205242178449, 39.96942242229639] ], "type": "MultiPoint" } }] }多点(MultiPoint)效果:
2.2 线(LineString)和多线(MultiLineString)
2.2.1 WKT表示
- 线(LineString):
LINESTRING (30 10, 10 30, 40 40) - 多线(MultiLineString):
MULTILINESTRING ((10 10, 20 20), (15 15, 30 15))
2.2.2 GeoJSON表示
线(LineString)数据格式:
{ "type": "LineString", "coordinates": [[30, 10], [10, 30], [40, 40]] }线(LineString)数据样例:
{ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": {}, "geometry": { "coordinates": [ [116.359965980, 39.973524821953276], [116.42205242178449, 39.96942242229639] ], "type": "LineString" } }] }
热门推荐
价值最低的货币排行
轩辕剑:上古十大名剑之首的传奇故事
UniApp自定义底部TabBar并使用uni.switchTab功能
“永恒的记忆——南京大屠杀文献展”正式展出,不同群体可与历史“对话”
家园协同共育 幼小科学衔接——以农村幼儿园开展常态化家园共育为例
骨科用钛合金表面改性技术
如何判断海绵的质量是否可靠?
婚内失恋,是事儿吗?
买二手车必看:整备项目详解及费用估算
《打开宇宙之门》第七集:探寻新元素 | 元素合成的超级武器
地铁有了,公园也升级了!青岛地铁4号线海泊河公园绿化恢复片区正式开放
金刚杵所蕴含的文化及寓意
数学与应用数学专业学什么?从理论到实践的全面解析
开年LPR维持不变 专家:短期内降息必要性下降
工商管理未来发展趋势有哪些关键点?
大元朝的命名之谜:探寻“大元”之名的历史寓意
破解支原体肺炎“迷雾”:科学守护冬季健康
涠洲岛旅游攻略:2-5天行程规划及实用建议
明朝宦官的权力膨胀与制度探析
金庸百年诞辰:那些上乘武学故事里,尽是现代学习之道
耐寒耐热的爬藤花卉大全(从北到南,藤蔓生长不息,这些花卉真是厉害!)
人为什么会成为猫奴?
神雕侠侣里,杨过与郭芙的江湖羁绊,半生恩仇,终付一笑
条形码的作用与实际案例分析:从商品管理到物流追踪
周鸿祎:AI给了年轻人比互联网更大的创业机会,关注六大应用方向
打造品牌竞争力:高端VI设计的重要性与实践
芒种时节话养生 听听中医怎么说
36岁女人辞职后怎么重新规划职业?
家电选购指南:如何选购实用又省心的家电产品
赛博朋克2077:蓝眼睛先生的神秘身份与背后任务深度剖析