npm 包 @conveyal/react-select-geocoder-arcgis 使用教程

阅读时长 7 分钟读完

简介

@conveyal/react-select-geocoder-arcgis 是一个基于 React 的组件库,它提供了一个地理编码组件,可以将用户输入的文本转化为地理坐标,并在地图上展示。该组件库依赖于 ESRI 的 ArcGIS API,使用时需要先在项目中安装该 API。

安装

使用 npm 安装 @conveyal/react-select-geocoder-arcgis 和 ArcGIS API:

使用

使用 @conveyal/react-select-geocoder-arcgis 的步骤如下:

  1. 加载 ArcGIS API

    在使用 @conveyal/react-select-geocoder-arcgis 之前,需要先加载 ArcGIS API。可以使用 esri-loader 来加载:

  2. 渲染地理编码组件

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

    注意:需要在组件外部设置合适的 CSS 样式,例如:

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

    这里使用了默认的样式,如果需要自定义可以覆盖上述样式。

属性

  • onSuggest: (suggestions: Suggestion[]) => void

    当用户输入时,会触发此回调函数,返回一个地理编码建议的列表(Suggestion 类型定义如下)。

    text 表示建议的文本,magicKey 是一个可选的字符串,用于表明该建议的分类。

  • onSearch: (results: SearchResult[]) => void

    当用户选择某个建议并点击搜索时,会触发此回调函数,返回一个包含搜索结果的列表(SearchResult 类型定义如下)。

    text 表示搜索结果的文本,source 表示搜索来源,location 包含搜索结果对应的经纬度坐标。

  • minSuggestCharacters: number

    触发 onSuggest 回调函数的最小输入字符数,默认为 3

  • languages: string[]

    设置地理编码的语言,例如 ["en", "fr", "es"] 表示使用英语、法语和西班牙语语言编码搜索,不设置则使用浏览器默认语言。

  • params: GeocodeParams

    设置地理编码参数,可以自定义地理编码服务的 URL、代理等信息。详细可参见 ArcGIS 官方文档

示例

下面是一个完整的使用示例:

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

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

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

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

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

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

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

此代码中,使用了 esri-loader,异步加载了 ArcGIS API 的 MapMapView 类,创建了一个简单的地图视图,并将地址编码组件与之配合使用。用户输入地址之后,会触发 handleSearch 回调函数,并将地图视图移动到搜索结果所在的位置。

总结

@conveyal/react-select-geocoder-arcgis 提供了一个简单易用的地址编码组件,使开发者可以更方便地实现地理位置搜索功能。同时,该组件库的示例代码也提供了很好的参考,可供开发者学习和借鉴。

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