npm 包 ogr-json-stream 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

前言

在地理信息系统 ( 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


猜你喜欢

  • npm 包 redux-proptypes-pack 使用教程

    在 React Redux 应用中使用 PropTypes 可以帮助您捕获运行时错误。但是当您将 Redux 追加到应用程序中时,这变得更加困难,因为您使用的所有组件都必须通过 props 访问 Re...

    4 年前
  • npm 包 redux-promises-concluder 使用教程

    redux-promises-concluder 是一个 Redux 的中间件,用于在异步操作中处理多个 Promise,方便将多个 Promise 转化为一个结果作为 Redux 的数据。

    4 年前
  • npm 包 redwire 使用教程

    在前端开发中,使用依赖包来简化工作是一个必然的趋势,而 npm 是前端领域使用最广泛的包管理器。在 npm 上有数以万计的开源包,可以大幅提高我们的开发效率。其中,一个非常有用的 npm 包就是 re...

    4 年前
  • npm 包 redye 使用教程

    redye 是一个可以高效裁剪或批量替换图片颜色的 node.js 模块。在前端开发中,常常需要调整图片颜色以适应特定场景,这时候使用 redye 可以很方便地完成这个任务。

    4 年前
  • npm包redux-protal的使用教程

    简介 redux-protal是一款针对React和Redux应用程序开发的工具包。它可以帮助我们轻松创建强大的Portal,并使我们可以轻松地管理和控制整个应用程序的状态。

    4 年前
  • npm包redux-provider-middleware使用教程

    在开发过程中,我们经常需要使用Redux来管理应用程序状态。Redux Provider Middleware是一个非常方便的npm包,它可以为应用程序提供完整的redux中间件解决方案。

    4 年前
  • npm 包 redux-publish-action 使用教程

    介绍 redux-publish-action 是一款可与 Redux 框架整合的 npm 包,它可以帮助你更方便地发布异步 action。本文将详细讲述如何使用 redux-publish-acti...

    4 年前
  • npm 包 redux-pubnub-action-sync-middleware 使用教程

    在前端开发中,使用 Redux 管理应用程序的状态已经非常普遍。Redux 通过整个应用共享状态,使得状态变化管理变得更加容易。同时,Redux 也可以通过使用中间件来扩展它的功能。

    4 年前
  • npm 包 redux-pure-form 使用教程

    在前端开发中,管理应用程序的状态是一项关键任务。Redux 是一种非常流行的状态管理库,可以帮助我们管理应用程序的状态并使其更可预测和可控制。在这篇文章中,我们将介绍一个名为 redux-pure-f...

    4 年前
  • npm 包 Redux-Typescript 使用教程

    Redux 是前端开发中流行的状态管理工具之一,为了更方便地使用 TypeScript,开发者们发布了 Redux-Typescript 这个 npm 包。本文将为您介绍如何安装和使用 Redux-T...

    4 年前
  • npm 包 redux-typescript-actions 使用教程

    前言 在使用 React 开发前端应用时,状态管理是一个十分重要且复杂的问题,而 Redux 作为经典的状态管理框架在 React 生态中被广泛使用。但是,若是在使用 TypeScript 开发时,R...

    4 年前
  • npm 包 Redux-UI 使用教程

    在前端开发中,状态管理是一个重要的部分。为了方便管理和更新状态,Redux 是一个非常流行的解决方案。而 Redux-UI 则提供了一些便利的方法和组件,使得开发者可以更加容易地管理和更新用户界面的状...

    4 年前
  • npm 包 redux-ui-shallow 使用教程

    在 Web 开发中,前端技术日新月异,为了提高开发效率和代码质量,npm 包成为了我们不可或缺的工具之一。而 redux-ui-shallow 则是一个非常实用和强大的 npm 包,它可以帮助我们快速...

    4 年前
  • npm 包 redux-uncaught-promise 使用教程

    简介 redux-uncaught-promise 是一个用于处理 Redux 异步操作中 Promise 异常信息的中间件。在 Redux 中,我们常常会使用 Promise 进行异步数据请求,但当...

    4 年前
  • npm 包 redux-ui-state 使用教程

    引言 Redux 是 React 生态圈中广泛使用的状态管理库,其简单、可预测和易于调试的特点使得其成为前端开发中必不可少的库之一。而 redux-ui-state 则是在 Redux 基础上构建的 ...

    4 年前
  • npm 包 redux-undo-redo-middleware 使用教程

    在前端开发中,状态管理是一个非常重要的概念。其中 Redux 是一种流行的状态管理库,用于管理应用程序中的数据流。在使用 Redux 进行状态管理时,我们需要注意 Undo 和 Redo 功能的实现。

    4 年前
  • npm 包 redux-undo-stack 使用教程

    简介 redux-undo-stack 是一个用于在 Redux 中添加撤销/恢复功能的插件,它可以在 Redux Store 中存储历史状态并根据需要进行管理。通过使用 redux-undo-sta...

    4 年前
  • NPM 包 redux-undoable 使用教程

    React 和 Redux 是目前前端界最常使用的技术栈之一,其中 Redux 负责全局状态的管理,保证了应用的可维护性和扩展性。但是在实际开发中,难免会出现一些误操作或者需要撤销的情况,这时候就需要...

    4 年前
  • npm包redux-unhandled-action使用教程

    简介 redux-unhandled-action是一个非常有用的npm包,可以帮助我们更好地调试Redux应用程序。在编写Redux应用程序时,我们可能会出现一些未处理的动作,这些动作无法触发对应的...

    4 年前
  • npm 包 redux-uniform 使用教程

    简介 redux-uniform 是一个可以帮助你管理 Redux 应用状态的 npm 包。它的目的是使 Redux 应用的状态更新更加简单和可预测。本文将介绍如何安装、使用和扩展 redux-uni...

    4 年前

相关推荐

    暂无文章