npm 包 mapbox-gl-overpass 使用教程

阅读时长 6 分钟读完

简介

mapbox-gl-overpass 是一个 npm 包,提供了一种方便获取 OpenStreetMap 要素的方式。此包可以在 Mapbox GL 中使用,支持开箱即用的 Overpass API 查询构建器,不需要繁琐的 API 请求。

安装

通过 npm 安装

使用

mapbox-gl-overpass 利用了 Mapbox GL 事件系统、样式和数据源 API,以及 Overpass API 查询构建器,结合使用可以方便地获取 OSM 要素。

初始化

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

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

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

添加图层

要添加用 Overpass 检索的数据,有以下 4 个步骤

  1. 在 style.json 中定义一些图层用于装载数据:
-- -------------------- ---- -------
-
  ----- -----------
  ------- -------
  --------- -----------
  -------- -
    ------------- ------
    --------------- ---
  --
  --------- ------ -------- ----------
-
  1. 用 Overpass 的查询语言在 http://overpass-turbo.eu/ 查询要素。例如查询西雅图的所有非居民区:
-- -------------------- ---- -------
-----------------------
-- ----- ---- --------- -- ------ --
-------------------------------------
-
  -- ----- --- ------- --- ------- ---- -- --- ----
  --------------------------------
  -------------------------------------
  --------------------------------
  -------------------------------------
- -----------------
-- ------ --- ------------
-----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
------- -------
---
  ----
  -----
  1. 把查询语言转换成 JSON 格式的 Overpass API 查询(在 overpass turbo 的查询面板下方可以找到):
-- -------------------- ---- -------
-
  ------- ------
  -------- -
    -------- -- -----------------
    -------- -- ----------------
  --
  --------- -
    ------ ----------
    ------ ------------
    --------- ----
  --
  ---------- -
    ----------
  -
-
  1. 调用 overpass.addLayer(options) 把数据加载到设置好的图层上:
-- -------------------- ---- -------
-------------------
  --- -----------
  ------ -
    ----- ------
    ------- -
      ---- ----------
      ---- ------------
      ------- -----
    --
    -------- -
      -------- -- ---------------
      -------- -- ---------------
    --
  --
---

示例代码

此示例代码利用 Overpass 查询 OpenStreetMap 中附近的默认 POI。可以查看 JSON 响应,被加载到 Mapbox GL 中:

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

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

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

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

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

结论

mapbox-gl-overpass 提供了一种方便获取 OpenStreetMap 要素的方式,使用起来非常简单,不需要繁琐的 API 请求。它结合了 Mapbox GL 的事件系统、样式和数据源 API,以及 Overpass API 查询构建器,使得获取 OSM 上感兴趣的数据变得更加容易。为开发者提供了值得学习和使用的思路,同时其代码示例也赋予开发者具体的指导意义。

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

纠错
反馈