npm包 osm-pbf-parser 使用教程

阅读时长 6 分钟读完

简介

osm-pbf-parser 是一个从 *.osm.pbf 文件中解析 Open Street Map 数据的 JavaScript 包。支持文件本地解析和网络请求解析,同时支持同步和异步解析,能够解析并返回许多数据,包括节点、道路、边界、关系等等。

安装

使用 osm-pbf-parser 需要在你的项目中安装 npm 包,你可以通过以下命令进行安装:

使用方法

基本用法

将 osm-pbf-parser 引入到你需要使用的文件,并使用以下代码进行解析:

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

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

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

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

    -- --- ---------------
  --
--
展开代码

配置参数

在实例化一个 OsmPbfParser 对象时,可以传递一些参数进行配置。下面列举了一些常用的参数:

  • tags - 解析哪些标签,如果该参数为 null,则解析所有标签
  • endDocument - 是否分段解析
  • useMessageQueue - 是否启用消息队列
  • ignoreInvalidPrimitives - 是否忽略不合法数据
  • ignoreDenseNodeWarning - 是否忽略密集节点警告

以下是一个配置了上述参数的例子:

同步解析

如果你使用的是同步方法读取文件,那么可以使用 OsmPbfParser 的 syncParse 方法对文件进行解析,其用法类似于 parse 方法:

解析结果

解析出的结果是一个对象,对象的属性包括:

  • bounds - 这个文件地理范围的经纬度边界
  • nodes - 地图上所有节点的数组
  • ways - 地图上所有的道路的关系数组
  • relations - 地图上所有实体关系的数组

以下是一个解析结果,其中包含两个节点,一个包含两个节点和两条边的道路,以及一个节点和一条边的道路:

-- -------------------- ---- -------
- -------
   - ------- -- ------- -- ------- ------------------- ------- ----------------- --
  ------
   - - --- ----------- ---- --------- ---- - --
     - --- ----------- ---- -- ---- ------------------ - --
  -----
   - - --- ------
       ----- - ----------- ----------- ---------- --
       ----- - -------- -------------- ----- -------- --- --- - --- --
       ----- ----- --
     - --- ------
       ----- - ----------- ---------- --
       ----- - -------- ------------- --
       ----- ----- - --
  ---------- -- -
展开代码

示例代码

以下是一个完整的示例代码,将 Open Street Map 数据文件中的节点、道路和边界信息解析出来,并以 geojson 格式输出:

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

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

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

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

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

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

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

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

    -- -- -------
    ------------------------------------
  --
--
展开代码

总结

使用 osm-pbf-parser 可以方便地从 *.osm.pbf 文件中解析出 Open Street Map 数据,进而进行地理位置的可视化等等操作。如果你需要使用 Open Street Map 数据,可以尝试使用本工具库,如果你想深入学习该库,可以进一步阅读其源代码。

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