GeoJson和WKT数据格式解析

1. GeoJson数据格式

       GEOJSON是gis地图中常用的数据格式,制作地图时用于存储各种地理数据,使用时通过OpenLayer、Leaflet、mapLibre-gl或者Cesium加载GEOJSON即可渲染出GEOJSON中描述的地理要素。 GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面这几种几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。

1.1 GeoJson格式Point(点)数据类型

// 单点
{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [117.99190687, 35.50822557]
    },
    "properties": {
        "id": 1,
    }
}


// 点集合
{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [117.99190687, 35.50822557]
            },
            "properties": {
                "id": 1,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [117.96619434, 35.52166714]
            },
            "properties": {
                "id": 2,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [117.97335273, 35.48674373]
            },
            "properties": {
                "id": 3,
            }
        }
    ],
}

1.2 LineString(单线集合)

{
	"type": "FeatureCollection",
	"features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [118.0306694, 35.43721579],
                    [118.03078743, 35.43724285],
                    [118.03111693, 35.43731908],
                    [118.0311978, 35.43734919],
                    [118.03221024, 35.43769322],
                    [118.03250704, 35.43812874]
                ]
            },
            "properties": {
                "id": 1,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [118.07791132, 35.47249553],
                    [118.07756802, 35.47253279],
                    [118.07724543, 35.47267541],
                    [118.07695463, 35.47279278],
                    [118.07664908, 35.47296262],
                    [118.07639818, 35.47313537],
                    [118.07625144, 35.47323399],
                ]
            },
            "properties": {
                "id": 2,
            }
        }
    ]
}

1.3 MultiLineString(多线集合)

{
	"type": "FeatureCollection",
	"features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "MultiLineString",
                "coordinates": 
                [
                    [
                        [118.0306694, 35.43721579],
                        [118.03078743, 35.43724285],
                        [118.03111693, 35.43731908],
                        [118.0311978, 35.43734919],
                        [118.03221024, 35.43769322],
                        [118.03250704, 35.43812874]
                    ]
                ]
            },
            "properties": {
                "id": 1,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "MultiLineString",
                "coordinates": 
                [
                    [
                        [118.07791132, 35.47249553],
                        [118.07756802, 35.47253279],
                        [118.07724543, 35.47267541],
                        [118.07695463, 35.47279278],
                        [118.07664908, 35.47296262],
                        [118.07639818, 35.47313537],
                        [118.07625144, 35.47323399],
                    ]
                ]
            },
            "properties": {
                "id": 2,
            }
        }
    ]
}

注意:LineString和MultiLineString区别是geometry中coordinates中数组层数,在LineString中coordinates比MultiLineString中coordinates数组少一层。 

1.4 Polygon(单面集合)

{
	"type": "FeatureCollection",
	"features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": 
                [
                    [
                        [118.0311135, 35.41468743],
                        [118.03107835, 35.41461441],
                        [118.03105841, 35.41461084],
                        [118.03102488, 35.41462013],
                        [118.03092181, 35.41466966],
                        [118.0311135, 35.41468743]
                    ]
                ]
            },
            "properties": {
                "id": 1,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": 
                [
                    [
                        [118.02874987, 35.41063291],
                        [118.02873699, 35.41060668],
                        [118.02834078, 35.41083566],
                        [118.02820339, 35.41091506],
                        [118.02798847, 35.41104033],
                        [118.02795153, 35.41105555],
                        [118.02874987, 35.41063291]
                    ]
                ]
            },
            "properties": {
                "id": 2,
            }
        }
    ]
}

1.5 MultiPolygon(多面集合)

{
	"type": "FeatureCollection",
	"features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "MultiPolygon",
                "coordinates": 
                [
                    [
                        [
                            [118.0311135, 35.41468743],
                            [118.03107835, 35.41461441],
                            [118.03105841, 35.41461084],
                            [118.03102488, 35.41462013],
                            [118.03092181, 35.41466966],
                            [118.0311135, 35.41468743]
                        ]
                    ]
                ]
            },
            "properties": {
                "id": 1,
            }
        }, {
            "type": "Feature",
            "geometry": {
                "type": "MultiPolygon",
                "coordinates": 
                [
                    [
                        [
                            [118.02874987, 35.41063291],
                            [118.02873699, 35.41060668],
                            [118.02834078, 35.41083566],
                            [118.02820339, 35.41091506],
                            [118.02798847, 35.41104033],
                            [118.02795153, 35.41105555],
                            [118.02792176, 35.41106236],
                            [118.02788682, 35.41106302],
                            [118.02788728, 35.41106386],
                            [118.02792627, 35.41113385],
                            [118.02793955, 35.41115771],
                            [118.02874987, 35.41063291]
                        ]
                    ]
                ]
            },
            "properties": {
                "id": 2,
            }
        }
    ]
}

注意:Polygon和MultiPolygon区别是geometry中coordinates中数组层数,在Polygon中coordinates比MultiPolygon中coordinates数组少一层。

2. WKT数据格式

        WKT(Well-Known Text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及其转换。它使得这些复杂的空间几何数据能够以可读的文本形式被表示和传输,广泛应用于各种地理信息系统(GIS)软件和空间数据库中。WKT可以表示的几何对象包括点、线、多边形、TIN(不规则三角网)及多面体等。几何物体的坐标可以是2D(x,y)、3D(x,y,z)、4D(x,y,z,m),加上一个属于线性参照系统的m值。

2.1 POINT和MULTIPOINT数据格式

POINT (117.844905 35.587575)
POINT (117.844905 35.587575,117.844905 35.587575)

2.2 LINESTRING和MULTILINESTRING数据格式

LINESTRING (117.95478812043194 35.50016111366496, 117.95423677717844 35.50575352325713, 117.9540469028758 35.50575206646059, 117.95368528617945 35.50606837012798, 117.95301975665973 35.50627372821367, 117.95262234282126 35.50603399077764, 117.93590540697693 35.546293779632094)
MULTILINESTRING ((117.95478812043194 35.50016111366496, 117.95423677717844 35.50575352325713, 117.9540469028758 35.50575206646059, 117.95368528617945 35.50606837012798, 117.95301975665973 35.50627372821367, 117.95262234282126 35.50603399077764, 117.93590540697693 35.546293779632094),(117.9329513143731 35.4632993559314, 117.93296168369284 35.46347847443357, 117.93309224270592 35.4646118095705, 117.93324857080336 35.46475406666043, 117.93328488319906 35.46498017533969, 117.93362818736597 35.46502470168066, 117.93361807425754 35.465040983674))

2.3 POLYGON和MULTIPOLYGON数据格式

POLYGON ((118.11815652442374 35.42505815206363, 118.11809941735964 35.424981414446336, 118.11800364405428 35.42502900366634, 118.11805653677436 35.42510932391832, 118.11815652442374 35.42505815206363))
MULTIPOLYGON (((118.11815652442374 35.42505815206363, 118.11809941735964 35.424981414446336, 118.11800364405428 35.42502900366634, 118.11805653677436 35.42510932391832, 118.11815652442374 35.42505815206363)))

3.GeoJSON数据和WKT数据格式转换

        WKT数据格式通常是后端能够处理得到的数据格式,前端地图框架通用空间数据格式为GeoJSON,因此前端需要将WKT转换为GeoJSON格式才能被利用。前端可以使用terraformer-wkt-parser插件实现WKT数据和GeoJSON数据之间的转换,

插件的NPM地址:terraformer-wkt-parser - npm      

3.1 terraformer-wkt-parser插件安装

npm install terraformer-wkt-parser

3.2 WKT与GeoJson数据转换

import WKT from "terraformer-wkt-parser"

// parse() 将wkt转为geojson
const WktToGeojson = (wktData)=> {
    return WKT.parse(wktData)
}

// convert() 将geojson转为wkt
const GeojsonToWkt = (geojsonData)=> {
    return WKT.convert(geojsonData)
}

export {WktToGeojson,GeojsonToWkt}

注意:parse()方法和convert()方法返回和传入的geojson都是单几何图形,不能是几何图形集合。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/659795.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

拍摄的视频内容怎么做成二维码?视频在线转换成二维码的方法

怎么把拍的个人才艺视频做成二维码呢?现在扫码看视频是实现内容快速传播的一种常用方式,所以很多人会将自己拍摄的视频制作二维码图片,然后分享给其他人扫码获取内容,对于内容的传播速度及用户体验有很好的提升,在很多…

Comfyui导出图片的命名技巧,日期文件夹

种子序号命名:%KSampler.seed% 图片宽高序号命名:%Empty Latent Image.width%x%Empty Latent Image.height% 年月日:%date:yyyy-MM-dd% 时分秒:%date:hhmmss% 年月日种子序号:%date:yyyy-MM-dd%/%KSampler.seed%

以果决其行,只为文化的传承

从他们每一个人的身上,我们看到传神的东西,就是他们都能用结果,去指引自己前进的方向,这正是我要解读倪海厦老师的原因,看倪海厦2012年已经去世,到现在已经十几年时间了,但是我们看现在自学中医…

TC3xx分析--如何提高系统运行效率(2)

目录 1.概述 2.限定符对于代码的影响 3.小结 1.概述 上文TC3xx分析--如何提高系统运行效率(1)-CSDN博客讲解了Tasking中lsl的某些关键定义,简述了Tricore寻址模式,接下来我们继续看,不同memory限定符对于代码的影响。 2.限定符对于代码的…

查询sqlserver表占用空间,查询当前数据库缓存的所有数据页面,查询当前数据库经常访问的表

查询某张表的磁盘占用情况: --第一种 EXEC sp_spaceused 表_测试表;--第二种 SELECT OBJECT_NAME(object_id) AS TableName,SUM(used_page_count) * 8 AS UsedSpaceKB FROM sys.dm_db_partition_stats GROUP BY object_id;查询当前数据库缓存的所有数据页面&#x…

mmu之TLB的来源与实现

TLB的由来 遇到的问题 对于两级页表(Page Table)的设计,需要访问两次物理内存才可以得到虚拟地址对应的物理地址(一次访问第一级页表,另一次访问第二级页表),而物理内存的运行速度相对于处理器本身来说,有几十倍的差距; 因此在处…

zabbix事件告警监控:如何实现对相同部件触发器告警及恢复的强关联

有一定Zabbix使用经验的小伙伴可能会发现,接收告警事件时,其中可能包含着大量不同的部件名,同一部件的事件在逻辑上具有很强关联性,理论上应保持一致的告警/恢复状态,但Zabbix默认并未对它们进行关联,直接后…

单片机+DAC0832信号发生器的仿真设计(方波、三角波、梯形波、锯齿波)

仿真原理图如下(proteus仿真工程文件可留意下载) 一、设计要求 设计一个能产生方波、三角波、梯形波、锯齿波的波形发生器。 二、方案论证 方案一 :利用单片机AT89C51编写程序,然后将产生信号通过DAC0832(数模转换器)转化成模拟信号,输入信号经运放电路后信号放大,低…

Make-An-Audio——用于语音生成的提示增强扩散模型

0.引言 论文提出了一个从文本生成语音的扩散模型 Make-An-Audio。该模型将文本提示作为输入,并据此生成语音。例如,输入 “一只猫在喵喵叫,一个年轻女人的声音”,就会输出猫在喵喵叫,一个女人在说话的音频。这项研究已…

做抖音小店什么类目最容易爆单?搞懂这三点就明白了!

大家好,我是电商糖果 我们刚接触电商的时候,一定经常听一些同行念叨,选择大于努力,类目大于一切。 很多电商人把选类目比做定生死。 类目选对了,让你轻松飞升不是问题,类目选错了,基本被判了…

某烟草企业数字化转型物流信息化咨询项目规划方案(117页PPT)

方案介绍: 烟草企业数字化转型物流信息化咨询项目规划方案将为企业带来多方面的价值,包括提升物流运营效率、降低物流成本、优化供应链管理、增强企业竞争力和促进可持续发展等。这些价值的实现将有助于企业在激烈的市场竞争中保持领先地位并实现可持续…

【C++奇妙冒险】拷贝构造函数、运算符重载(赋值重载|const成员|取地址重载|const取地址重载)

文章目录 前言🚩拷贝构造函数🫧概念🫧特征🫧默认生成的拷贝构造🫧default关键字(浅谈) 🚩运算符重载🫧概念🫧运算符重载注意事项🫧封装如何保证&a…

梳理清楚的echarts地图下钻和标点信息组件

效果图 说明 默认数据没有就是全国地图, $bus.off("onresize")是地图容器变化刷新地图适配的,可以你们自己写 getEchartsFontSize是适配字体大小的,getEchartsFontSize(0.12) 12 mapScatter是base64图片就是图上那个标点的底图 Ge…

理解多线程看这一篇就够了

一、基本概念与关系 程序 程序是含有指令和数据的文件,静态地存储在磁盘等存储设备上。它是软件的实体,但未被激活。 进程 进程是程序的一次执行过程,是系统运行程序的基本单位。当程序被操作系统加载并执行时,就成为一个进程&a…

SAP 消息号VF501科目确定期间出错

在销售开票VF02的时候,经常出现报错:“科目确定期间出错”,这个报错,目前检查步骤: 1、BP客户主数据,销售代码层数据(销售与分销)-开票-会计-客户科目分配组,要与销售订…

卷积计算过程详解(含图示和代码)

什么是卷积? 卷积是一种数学运算,通过两个函数f和g生成第三个函数,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。卷积在泛函分析中扮演重要角色,可以被看作是“滑动平…

【大数据】Hadoop 2.X和1.X升级优化对比

目录 1.前言 2.hadoop 1.X的缺点和优化方向 3.解决NameNode的局限性 3.1.Hadoop HA 3.2.Haddop federation 4.yarn 5.周边组件 1.前言 本文是作者大数据系列中的一文,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?spm10…

扎气球最高分-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第74讲。 扎气球最高分&…

图片怎样在线改像素大小?电脑快速修改图片大小的方法

在设计图片的时候下载的图片尺寸一般会比较大,在网上使用经常会因为尺寸的问题导致无法正常上传,那么如何快速在线改图片大小呢?想要修改图片尺寸可以在直接选择网上的图片改大小工具的功能来快速完成修改,操作简单方便使用&#…

FreeRTOS学习笔记-基于stm32(7)任务状态查询与任务时间统计API函数

1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…