npm 包 bookshelf-geojson 使用教程

在 Web 开发中,地理位置信息是广泛使用的一种数据类型。由于其特殊性,我们需要一种数据格式来表示地理位置信息。而 GeoJSON 就是这样一种格式。

什么是 GeoJSON ?

GeoJSON 是一种基于 JSON 的地理位置数据格式。它支持点,线,面等几何类型,并且可以在地图上进行可视化展示。

例如,下面是一个 GeoJSON 格式表示的多边形:

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

什么是 bookshelf-geojson?

bookshelf-geojson 是一个可以将 GeoJSON 数据存储到关系型数据库中的 npm 包。它是基于 ORM 模式的 bookshelf.js 的扩展,支持点、线、面等多种类型地理位置数据的存储与查询。

安装 bookshelf-geojson

要使用 bookshelf-geojson,我们需要先安装 bookshelf.js。如果您还没有安装,可以在命令行中输入以下命令进行安装:

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

接下来,我们需要安装 bookshelf-geojson。同样在命令行中输入以下命令进行安装:

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

在代码中使用 bookshelf-geojson

在代码中使用 bookshelf-geojson 非常简单。我们只需要将 bookshelf 的实例传递给 bookshelf-geojson 的构造函数即可。

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

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

其中,knex 是一个用于访问数据库的库(必须传入),pluginOptions 则是插件的选项。

插件选项中使用了多个参数,包括:

  1. geomColumn: 用于存储 Geometry 数据的字段名,默认为 geometry
  2. geomType: 存储 Geometry 数据的类型,包括 Point、LineString、Polygon、MultiPoint、MultiLineString 和 MultiPolygon,默认为 point
  3. srid: 存储 Geometry 数据采用的坐标系编号,默认为 4326

添加与查询地理位置数据

在使用 bookshelf-geojson 存储地理位置数据时,我们需要将 GeoJSON 数据转换为 PostgreSQL 模式下支持的坐标格式 Point(x,y)LineString((x1,y1),(x2,y2),...,(xn,yn))Polygon((x1,y1),(x2,y2),...,(xn,yn))

在示例中,我们定义了一个表 places,用于存储地点信息,包括经纬度、名称等。

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

接着我们可以通过以下代码来创建一个包含地方名称、经度、纬度信息的地方:

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

同样,我们也可以用下面的代码来查询所有的地方信息:

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

以上代码将返回 places 表中所有地方的信息,其中包括经纬度等信息。

总结

本文介绍了 GeoJSON 和 bookshelf-geojson 的相关内容,主要包括安装、配置、添加与查询地理位置数据等内容。这些功能对于使用地理位置数据的后端 Web 开发人员是非常有用的,可以帮助他们快速、准确地存储并查询地理位置数据,并且可以使用 GeoJSON 格式在地图上进行可视化展示。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056be881e8991b448e5a2a


猜你喜欢

  • npm 包 aromanize 使用教程

    什么是 npm 包 aromanize aromanize 是一款用于实现阿拉伯数字与中文数字之间互相转换的 npm 包。它使用简单,支持多种语言数字的转换,并且经过了严格的测试和优化,可以放心使用。

    3 年前
  • npm 包 aviation-edge 使用教程

    在前端开发过程中,我们经常需要调用各种外部的接口,其中航空信息查询是一个比较常见的需求。本文介绍一个 npm 包 - aviation-edge,它是一个提供了丰富的航班信息的 API,使用起来十分方...

    3 年前
  • npm 包 homebridge-netatmo-schaloms 使用教程

    前言 在前端开发中,我们常常需要通过使用第三方模块来提高工作效率和代码质量,而 npm 就是一个非常流行的第三方模块管理工具。本文将介绍一款基于 npm 包开发的 homebridge-netatmo...

    3 年前
  • npm 包 node-red-contrib-canzea-vars 使用教程

    前言 在前端开发中,常常需要使用到各种 npm 包来帮助我们轻松实现一些功能。而本文将介绍一款名为 "node-red-contrib-canzea-vars" 的 npm 包,它可以方便地在 Nod...

    3 年前
  • npm 包 simplecalculatorjs 使用教程

    在前端开发中,计算器是一个很常见且重要的工具。而使用 npm 包 simplecalculatorjs 可以快速地在项目中引入一个简单易用的计算器组件。本文将详细介绍如何使用 simplecalcul...

    3 年前
  • npm 包 spotify-wrapper-tdd-course 使用教程

    简介 spotify-wrapper-tdd-course 是一个用于与 Spotify Web API 交互的 Node.js 包,它支持 TDD 的开发模式,通过该包可以轻松地实现一系列有趣的功能...

    3 年前
  • npm包 ApolloDoro-FB 使用教程

    ApolloDoro-FB 是一款基于 React 和 Firebase 构建的开源应用程序,旨在提供一个定时器功能的计时器工具。该工具可以帮助用户有效地管理时间,更好地利用时间。

    3 年前
  • NPM 包 tahereh-product 使用教程

    Tahereh Product 是一个基于 Vue.js 的前端组件库,提供了包含按钮、表单、布局、图标、提示框等常见 UI 元素,以及一些数据可视化组件,可用于快速搭建 Web 应用程序。

    3 年前
  • npm 包 angular-usersmodule 使用教程

    介绍 在前端开发中,我们经常需要使用一些现成的模块或插件来帮助我们更快地开发产品。npm 是一个广泛使用的 Node.js 包管理工具,可以为前端开发者提供许多实用的 npm 包。

    3 年前
  • npm 包 escpos-lite 使用教程

    在前端开发中,使用打印机来对客户端报告和发票进行输出是非常常见的需求。而 escpos-lite 是一款基于 npm 包的轻量级打印机驱动库,它可以帮助我们在前端轻松地完成打印机的设置和输出功能。

    3 年前
  • npm 包 angular2-http-auth 使用教程

    在前端开发中,经常需要使用到 ajax 请求来获取数据,而有些请求需要认证才能够获取到数据。angular2-http-auth 是一款用于 Angular2 的 http 认证包,可以帮助我们实现认...

    3 年前
  • npm 包 ms-delay 使用教程

    在前端开发中,经常需要添加一些延迟操作。一般情况下,我们会使用 setTimeout() 函数来实现延迟操作。然而,在实际项目中,可能会遇到一些复杂的时间计算问题或者需要多次使用 setTimeout...

    3 年前
  • npm 包 readfile-line 使用教程

    在前端开发中,经常需要读取文件的内容,特别是在处理大文件时,一次性读取可能会导致内存溢出。这时可以使用 readfile-line 这个 npm 包来逐行读取文件内容,这篇文章将详细介绍如何使用。

    3 年前
  • npm 包 ugly-ts-checker-webpack-plugin 使用教程

    在前端开发中,编写 TypeScript 代码可以增加代码的可读性和可维护性。然而,在进行开发时,TypeScript 的类型检查会变得非常慢,尤其是在项目规模变得更大时。

    3 年前
  • npm 包 waves.js-fork 使用教程

    在前端开发中,有许多常用的 UI 库,其中一个很重要的组成部分是动效。为了实现一些优秀的动效,我们需要使用一些库来协助完成。waves.js-fork 是一个 npm 包,可以用来实现鼠标点击水波纹效...

    3 年前
  • npm 包 phaser-tilemap-plus 使用教程

    Phaser 是一个流行的基于 HTML5 的游戏开发框架。Phaser-tilemap-plus 是一个非常有用的 npm 包,它提供了一些额外的功能和工具,方便大家在游戏开发过程中进行地图制作。

    3 年前
  • npm 包 ewb-template 使用教程

    简介 随着前端技术的发展,越来越多的开源项目和框架涌现出来。而 npm 作为前端包管理工具,也越来越受到前端开发者的青睐。其中,ewb-template 就是一款基于 npm 包的前端开发工具。

    3 年前
  • 前端技术:使用 redux-back 的 npm 包教程

    介绍 在前端开发中,Redux 是一种非常流行的状态管理工具,它能够使得我们更好地组织和管理应用中的数据,并提供一套标准的 API 和工具来进行数据的流转和状态更新。

    3 年前
  • npm包cordova-plugin-wkwebview-ionic-xhr使用教程

    前言 在现代web开发中,我们经常需要在移动端使用cordova来打包我们的web应用程序,而cordova-plugin-wkwebview-ionic-xhr是一个非常好用的插件,它可以在cord...

    3 年前
  • npm 包 angular-2-dropdown-multiselect-edited 使用教程

    简介 angular-2-dropdown-multiselect-edited 是一个基于 Angular 框架的多选下拉框组件。使用该组件可以方便地实现多选下拉框控件。

    3 年前

相关推荐

    暂无文章