GIS开发:GeoJSON坐标和WKT的转换

简介: GIS开发:GeoJSON坐标和WKT的转换

“OpenGIS的说明书中定义了两个表述空间对象的标准方式:一个是WKT(the Well-Known Text)形式,另一个是WKB(the Well-Known Binary)形式。这两种形式都包括对象的类型信息和形成对象的坐标信息。”

下面是用字符来描述要素的空间对象的例子:

POINT(0 0) 
  
LINESTRING(0 0,1 1,1 2) 
  
POLYGON ((90 0,4 0,4 4,0 4,0 0),(1 1 ,2 1, 2 2, 1 2, 1 1))
GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。
GeoJSON中的坐标表现如下:

"geometry": {
   

                "type": "Point",

                "coordinates": [102.0, 0.5]

            }

"geometry": {
   
                "type": "LineString",

                "coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]

            }

一般在地图的客户端支持按照GeoJSON的形式进行图层加载,在后端的数据库处理中,一般是支持WKT格式的坐标返回,所以,需要在中间有一个转换过程,当然在新版的PostGIS中,可以直接返回GeoJSON数据。
mapbox 开放js类库,可以将两者的坐标形式进行转换。
github地址:
https://github.com/mapbox/wellknown
wkt和geojson坐标格式:

const {
    parse, stringify } = require('wellknown');

let _feature = parse('POINT(1 2)');

let _stringdata = stringify(_feature);

这是nodejs的方式,其他的使用在github上也有对应说明。

参考文章:
GeoJSON说明:
https://baike.baidu.com/item/GeoJson/12011566?fr=aladdin

WKT说明:
https://baike.baidu.com/item/wkt%20ewkt/4299879?fr=aladdin

github类库:
https://github.com/mapbox/wellknown

相关文章
分享:mapbox-gl的CGCS2000修改版
分享:mapbox-gl的CGCS2000修改版
690 0
|
存储 JSON JavaScript
从创建到维护:掌握package.json的最佳实践(一)
从创建到维护:掌握package.json的最佳实践
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
842 17
|
资源调度 监控 前端开发
第七章(原理篇) 微前端技术之依赖管理与版本控制
第七章(原理篇) 微前端技术之依赖管理与版本控制
934 0
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
echarts如何设置滚动条(dataZoom),实现横向或纵向滚动
|
SQL Java 关系型数据库
mybatis中<if>条件判断带数字的字符串失效问题
MySQL数据库使用Mybatis查询拼接select语句中进行`<if>条件拼接`的时候,发现带数字的或者带单个字母的字符串失效问题。 举例说明:我`Log对象`有个属性`accountId是字符串类型`,假设我给它赋值为“1”,按常理sql拼接的`应该是and account_name = 'unmadmin'` ,然而实际判断拼接的`却是and account_name != 'unmadmin'`,明显感觉问题出在这里`and log.accountId == '1'` 这里校验失败了,或者说失效了,估计很多人会踩坑,那么为什么呢?不应该啊?所以此刻就是为了定位它原因。
725 1
|
前端开发 JavaScript
使用 JavaScript 获取 URL 参数的详细指南
【2月更文挑战第26天】
16553 2
使用 JavaScript 获取 URL 参数的详细指南
|
安全 Java API
为什么捕获异常后不要使用e.printStackTrace()打印日志
为什么捕获异常后不要使用e.printStackTrace()打印日志
若依修改,切换首页,改成自己想要跳转的login页
若依修改,切换首页,改成自己想要跳转的login页

热门文章

最新文章