npm 包 ogr-json-stream 使用教程

阅读时长 5 分钟读完

前言

在地理信息系统 ( GIS ) 开发项目中,经常需要对空间数据进行转化和处理。而 OGR 的 ogr2ogr 可以方便地将不同的数据源进行格式转化,但是输出格式默认是 Shapefile 格式,而不是 JSON 格式,且不论是否只输出一个文件,输出的文件也是一个整体而不是一个可以一行一行读取的流数据。这种情况下,我们需要指定用 JSON 表示地理数据,然后将数据以流的形式输出到一个文件中。而这时候就可以使用 ogr-json-stream 这个 npm 包。

ogr-json-stream 是什么

ogr-json-stream 是一个可以将 OGR 转化为 JSON 的 npm 包。它将 OGR 转化为一个读取流,并且会将每一个要素转化为一个 JSON 行。这种形式让输出非常便于浏览器端的处理。

安装 ogr-json-stream

可以通过 npm 命令安装 ogr-json-stream:

使用 ogr-json-stream 将 Shapefile 转化为 GeoJSON

首先需要在 Node.js 环境中安装 OGR,在安装 ogr-json-stream:

ogr-json-stream 的 API 是基于 node-gdal。首先需要设置可以读 Shapefile 的 node-gdal 的库的路径:

然后通过 ogr-json-stream 读取 Shapefile 并将其转化为 GeoJSON:

-- -------------------- ---- -------
----- ------------- - ---------------------------

----- ----------- - ----------------------------------------------
----- ------------ - ------------------------------------------------

----- ------------- - --- ---------------
  ------------- -------------
  ---------- -------------
  ------- ---
---

--------------------------------

其中 outputStream 是一个文件流,代表输出的文件地址;layerName 代表 Shapefile 中的图层名称;layers 数组代表需要读取的图层的编号数组(从 0 开始计数)。

在转化成功后,GeoJSON 文件就会被输出到指定的文件地址。

使用 ogr-json-stream 将 PostGIS 数据库中的数据导出为 GeoJSON

首先需要在 Node.js 环境中安装 pg 和 pg-query-streamt 两个 npm 包:

然后可以通过以下代码将 PostGIS 数据库中的数据导出为 GeoJSON:

-- -------------------- ---- -------
----- -- - --------------
----- ----------- - ---------------------------
----- ---------- - ----------------------
----- ------------- - ---------------------------

----- ------ - --- -----------
  ----- -----------
  ----- ------------
  --------- ----------------
  --------- -----------
  ----- ----
---

-----------------

----- --- - ------- - ---- ------------

----- ------------- - --- ------------------------- ---------------

----- ----------- - --- -----------------
----- ---------- - -----------------------------------------
----- -------- - --------------------------
----- ------------ - ------------------------------------------------

-----------------------------------------------------------------

------------------ -- -- -
  -------------
---

其中,需要将上述代码中的数据库连接信息替换成实际的数据库连接信息,sql 语句替换成实际的查询语句即可。

总结

ogr-json-stream 是一个非常方便的 npm 包,可以帮助我们将 OGR 转化为 JSON 格式,而且可以通过流的方式输出到文件或者网络上。在 GIS 开发项目中,使用 ogr-json-stream 可以方便我们将数据导出为 GeoJSON 格式,并且可以有效地利用浏览器端的 JavaScript 进行进一步的处理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9e3d1de16d83a6709a

纠错
反馈