前端实现geoJson与wkt格式互转

geoJson与wkt都是WebGIS开发中经常用到的格式,很多时候WebGIS前端开发人员需要在二者之间进行互相转换。去让后端开发人员写个接口,太浪费时间,可以尝试用terraformer-wkt-parser进行一下二者的转换。虽然很简单,网上有些地方对其用法说的却不对。

这里我说一下,这个插件主要有两个函数

  • parse(string)   wkt转为geojson
  • convert(string)  geojson转wkt

插件的安装

npm install terraformer-wkt-parser --save

代码测试

import WKT from "terraformer-wkt-parser"


let wkts = "POLYGON((102.797302689433 36.5936423859273,105.519115206186 29.4789248520356,100.346180647351 19.9699202912212))";
let geojson={
      "type": "Polygon",
      "coordinates": [
        [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],
        [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
      ]
    }
    
console.log("wkt转geojson",WKT.parse(wkts))
console.log("geojson转wkt",WKT.convert( geojson))

打印结果

### 回答1: 可以使用 ST_AsText() 函数将 GeoJSON 转换为 WKT 格式。例如: ``` SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [125.6, 10.1] }')) ``` 该查询将返回: ``` POINT(125.6 10.1) ``` 请注意,您需要在 PostgreSQL 数据库中安装并启用 PostGIS 扩展,才能使用 ST_AsText() 和 ST_GeomFromGeoJSON() 函数。 ### 回答2: 在PostGIS中,将GeoJSON数据转换为WKT格式可以通过使用ST_GeomFromGeoJSON函数进行操作。 ST_GeomFromGeoJSON函数接受一个GeoJSON对象作为参数,并将其转换为PostGIS中的几何对象。 例如,假设我们有以下的GeoJSON数据: { "type": "Point", "coordinates": [125.6, 10.1] } 要将其转换为WKT格式,可以使用以下SQL查询: SELECT ST_AsText(ST_GeomFromGeoJSON(' { "type": "Point", "coordinates": [125.6, 10.1] }')); 执行上述查询后,将返回以下结果: POINT(125.6 10.1) 这样,我们就将GeoJSON格式的数据成功转换为了WKT格式。 需要注意的是,ST_GeomFromGeoJSON函数可以处理不同类型的几何对象,包括点、线、面等。 此外,如果要将整个GeoJSON文件转换为WKT格式,可以使用ST_AsText函数。该函数将几何对象转换为WKT格式的文本。 例如,在PostGIS中执行以下查询: SELECT ST_AsText(ST_GeomFromGeoJSON(geojson_column)) FROM table_name; 将会将表中的geojson_column列中的GeoJSON数据转换为WKT格式,并返回转换后的结果。 总而言之,使用ST_GeomFromGeoJSON函数可以将GeoJSON数据转换为PostGIS中的几何对象,然后使用ST_AsText函数将几何对象转换为WKT格式的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值