@aws/address-form-sdk-js

中文文档
1.6.1发布于 2026/11/07TypeScriptCommonJS构建来源已验证近 30 天下载 7708

Javascript 的地址表 SDK

中文使用文档
文档目录15 节
  1. 亚马逊地址表 SDK
  2. 开始
  3. 先决条件
  4. 安装
  5. 使用 SDK
  6. 自定义
  7. 支助国
  8. API 参考
  9. 地址格式
  10. 窗体输入字段
  11. 窗体按钮
  12. 地址论坛. 地图
  13. 捐款
  14. 警卫
  15. 许可证

亚马逊地址表 SDK

地址表SDK简化了自动填充地址表的开发. 当用户输入他们的地址时,表格会显示相关的建议. 选择一个建议将包含随后的字段,包括街道、城市、州和邮政编码。 这个智能特性通过去除手动打字来减少出错并节省时间. 用户可以在地图上预览所选地址并调整位置指针.

开始

地址表SDK可以在React App内部使用,也可以在独立的HTML和JavaScript页面中使用. 从下面的指令开始, 或使用我们控制台的一步向导来配置地址表单 .

先决条件

您需要 API 密钥, 允许您调用以下动作 。 跟随 用于创建 API 密钥的此指南。 。 。 .

使用地址表需要您的 API 密钥允许以下动作 :

行动目的需要时间
GetTile获取用于渲染交互式地图的地图牌显示映射组件
Autocomplete作为用户类型提供实时地址建议使用自动完整 API 键入头功能
Suggest作为用户类型提供实时地址建议在打字头功能中使用建议 API
ReverseGeocode将坐标转换为地址允许用户使用当前位置
GetPlace获取选定地址的详细位置信息使用打字头功能

安装

反应

通过运行在您的 React app 中安装 SDK : npm install @aws/address-form-sdk-js

HTML/贾瓦脚本

在您的 HTML 代码中包含以下 SDK 的 CSS 和 JavaScript

...
<head>
  ...
  <link
    rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.css"
  />
  ...
</head>
...
<body>
  ...
  <script src="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.umd.js"></script>
</body>
...

使用 SDK

在您的 React app 中执行以下代码 。 替换 AMAZON_LOCATION_API_KEY 使用您的 API 密钥值以及 AMAZON_LOCATION_REGION 与 API 键的区域.

反应

import React from "react";
import { AddressForm, Flex } from "@aws/address-form-sdk-js";

export default function App() {
  return (
    <AddressForm
      apiKey="AMAZON_LOCATION_API_KEY"
      region="AMAZON_LOCATION_REGION"
      onSubmit={async (getData) => {
        // Get form data with intendedUse parameter
        // Use "SingleUse" for one-time display only
        // Use "Storage" if you plan to store/cache the results - makes an extra API call to grant storage rights
        const data = await getData({ intendedUse: "SingleUse" });
        console.log(data);
      }}
    >
      <Flex direction="row" flex>
        <Flex direction="column">
          <input
            data-api-name="autocomplete"
            data-type="address-form"
            name="addressLineOne"
            placeholder="Enter address"
          />
          <input data-type="address-form" name="addressLineTwo" />
          <input data-type="address-form" name="city" placeholder="City" />
          <input data-type="address-form" name="province" placeholder="State/Province" />
          <input data-type="address-form" name="postalCode" />
          <input data-type="address-form" name="country" placeholder="Country" />
          <Flex direction="row">
            <button data-type="address-form" type="submit">
              Submit
            </button>
            <button data-type="address-form" type="reset">
              Reset
            </button>
          </Flex>
        </Flex>
        <AddressForm.Map mapStyle={["Standard", "Light"]} />
      </Flex>
    </AddressForm>
  );
}

HTML/贾瓦脚本

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Address Form</title>
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.css"
    />
  </head>
  <body>
    <form id="amazon-location-address-form" class="aws-address-form aws-flex-row aws-flex-1">
      <div class="aws-flex-column">
        <input
          data-type="address-form"
          name="addressLineOne"
          data-api-name="suggest"
          data-show-current-location="true"
        />
        <input data-type="address-form" name="addressLineTwo" />
        <input data-type="address-form" name="city" />
        <input data-type="address-form" name="province" />
        <input data-type="address-form" name="postalCode" />
        <input data-type="address-form" name="country" />
        <div class="aws-flex-row">
          <button data-type="address-form" type="submit">Submit</button>
          <button data-type="address-form" type="reset">Reset</button>
        </div>
      </div>
      <div data-type="address-form" data-map-style="Standard,Light"></div>
    </form>
    <script src="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.umd.js"></script>
    <script>
      AddressFormSDK.render({
        root: "#amazon-location-address-form",
        apiKey: "AMAZON_LOCATION_API_KEY",
        region: "AMAZON_LOCATION_REGION",
        showCurrentCountryResultsOnly: true,
        onSubmit: async (getData) => {
          // Get form data with intendedUse parameter
          // Use "SingleUse" for one-time display only
          // Use "Storage" if you plan to store/cache the results - makes an extra API call to grant storage rights
          const data = await getData({ intendedUse: "SingleUse" });
          console.log(data);
        },
      });
    </script>
  </body>
</html>

自定义

表格是完全自定义的 - 添加、去除或重排您使用时所需的元素 。 替换 Flex 使用您的 CSS 框架或自定义样式的组件。 您可以通过组件道具/属性控制地址表的其他功能. 见 API 参考 用于完整的定制选项.

支助国

地址表SDK支持通过亚马逊定位服务在全世界自动填充地址. 下列国家完全支持对地址进行实地分析,将每个地址部分纳入各自的领域:

  • 澳大利亚
  • 加拿大
  • 法国
  • 香港
  • 爱尔兰
  • 新西兰
  • 菲律宾
  • 新加坡
  • 联合王国
  • 美国

其他国家处于预览阶段,其中 addressLineOne 字段显示完整的地址,而不只是街道地址部分。 未来发行会改善这种行为.

API 参考

地址格式

反应 : 将地址窗体功能包起来的主要组件. <AddressForm>

HTML/贾瓦脚本 : 在页面上渲染地址表的功能 AddressForm.render({ ... })

道具

财产类型需求默认说明
apiKeystring对- 说吧亚马逊定位服务 API 密钥用于认证请求.
regionstring对- 说吧亚马逊定位服务所在的AWS区域(例如"us-east-1")
languagestring没有- 说吧语言代码 用于本地地址建议(例如“en”、“es”)
politicalViewstring没有- 说吧处理结果的政治观点,影响有争议领土的展示
showCurrentCountryResultsOnlyboolean没有false将自动填充建议限制在 Country 字段
allowedCountriesstring[]没有- 说吧ISO国家代码(alpha-2或alpha-3)组合以限制地址建议. 见 国家.ts 用于α-2 参考
placeTypesAutocompleteFilterPlaceType[]没有- 说吧矩阵 位置类型 以过滤结果(例如“本地性”、“后编码”)
initialMapCenter[number, number]没有- 说吧初始地图中心为[经度,纬度]坐标. 如果未提供,并在 allowedCountries地图以该国的首都为中心
initialMapZoomnumber没有变数初始地图缩放级别 。 默认: 10 当 initialMapCenter 提供,5在以单一允许的国家为中心时,1个
centerBounds[[number, number], [number, number]]没有- 说吧支持的区域框为 [[west, south], [east, north]] [经,纬 。 设定时,搜索会停留在区域内(按键偏差被夹入框中,因此即使用户将地图压出,结果也会停留在区域内);从框外的设备上点击当前位置按钮显示警告并留下字段未被移动,而不是返回最近的区域内地址;可调整的指针会保留在区域内:如果用户将指针拖出框外,则地图的调整栏会显示出区域外的警告,其"Undo调整"动作返回指针,格式提交会被屏蔽,直到返回区域内. 用于只覆盖世界部分地区的数据提供者(如东南亚的GrabMaps).
onSubmit(getData) => void没有- 说吧接收 getData 检索的async 函数 窗体数据 带有预期使用参数

表格提交数据

提交表格时 onSubmit 回调收到一个 getData async 函数。 用一个 intendedUse 获取窗体数据的参数 :

onSubmit: async (getData) => {
  const data = await getData({
    intendedUse: "SingleUse", // or "Storage"
  });
};

重要内容: 使用 "Storage" 如果你打算存储或缓存结果。 这确保遵守亚马逊定位服务 预定用途要求。 。 。 .

返回的数据对象包含下列属性:

财产类型说明
placeIdstring来自 Amazon 位置服务处的 Place ID( 仅在从 typeahead 或 位置 按钮中选择地址时显示)
addressLineOnestring主地址线(街道地址)
addressLineTwostring二级地址线(公寓、套房等)
citystring城市名称
provincestring国家或省
postalCodestring邮政或ZIP代码
countrystring国家代码(ISO 3166-1 alpha-2)
originalPositionstringAPI响应的原始坐标(经度,纬度)
adjustedPositionstring如果移动了地图指针(经度、纬度),则按用户调整坐标
addressDetailsAddress亚马逊定位服务API的完整地址对象( GetPlace/ ReverseGeocode 响应)

说明: 这个 addressDetails 属性包含 Amazon Location Service 的完整 API 响应,并且仅在地址通过我们的 API 地址( 类型头选择或定位按钮) 被覆盖时才存在. 用户手动输入的地址不会包含此属性 .

窗体输入字段

所有输入字段都使用 data-type="address-form" 属性与a name= 属性。 支持以下共同属性:

常见输入属性

财产类型需求说明
labelstring没有自定义输入字段的标签
placeholderstring没有输入的占位符文本
classNamestring没有用于自定义样式的 CSS 类名称

地址行 1 (name="addressLineOne"(中文(简体) )

带有自动填充功能的主地址输入 。 见 支助国 用于了解不同国家的地址域分析行为.

财产类型默认说明
labelstring"定居"字段标签
placeholderstring"进入地址"占位符文本
data-api-namestring"建议"API 类型 : autocomplete 或者说 suggest启用 suggest 返回两个指令并处理建议,以及 autocomplete 返回仅地址的建议
data-show-current-locationstring"对"使用浏览器的地理定位 API 启用当前位置功能 。 这将促使用户获得访问其位置的许可

其他输入字段

  • 地址行2 (单位:千美元)name="addressLineTwo":默认标签"地址2号线",占位符"公寓,套房等"
  • 城市 (单位:千美元)name="city": 默认标签"City"
  • 省/州 (单位:千美元)name="province": 默认标签"省/州"
  • 邮政编码 (单位:千美元)name="postalCode": 默认标签"邮政/Zip代码"
  • 国家 (单位:千美元)name="country": 默认标签"国家"

窗体按钮

提交按钮

<button data-type="address-form" type="submit">Submit</button>

重置按钮

<button data-type="address-form" type="reset">Reset</button>

地址论坛. 地图

用于显示和调整地址位置的地图组件.

反应 : 用于显示和调整地址位置的地图组件. <AddressForm.Map mapStyle={...}>

HTML/贾瓦脚本 : 用于显示和调整地址位置的地图元素.<div data-type="address-form" data-map-style="...">

道具

反应属性反应类型HTML/Java脚本属性HTML/Java脚本类型需求默认说明
mapStylearraydata-map-stylestring对- 说吧地图样式配置
showNavigationControlbooleandata-show-navigation-controlstring没有true显示地图导航控制
adjustablePositionbooleandata-adjustable-positionstring没有true允许用户调整地址位置

映射样式选项

地图样式由两部分组成: 地图样式名称 编辑 颜色方案. 地图样式名称决定了视觉主题(标准、单色、混合或卫星),而色彩方案则在适用的情况下指定了亮度变体(光或暗).

反应执行( 阵列格式)HTML/Java脚本执行( 样式)
['Standard', 'Light']"Standard,Light"
['Standard', 'Dark']"Standard,Dark"
['Monochrome', 'Light']"Monochrome,Light"
['Monochrome', 'Dark']"Monochrome,Dark"
['Hybrid']"Hybrid"
['Satellite']"Satellite"

每种地图样式和颜色图案的详细说明见 AWS 地图样式和定制。 。 。 .

捐款

我们欢迎社区的贡献并征求他们的意见。 见 捐款 关于如何建立开发环境的信息,并提交代码.

警卫

见 捐款 更多信息.

许可证

这个项目根据Apache-2.0许可证获得许可证.

版本与发布记录

@aws/address-form-sdk-js 共发布 10 个版本,首次发布于 2025/11/04;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.6.1latest2026/11/071 天前
1.6.02026/08/122 个月前
1.5.02026/07/143 个月前
1.4.12026/03/117 个月前
1.4.02026/01/319 个月前
1.3.02025/12/3110 个月前

关于 @aws/address-form-sdk-js 的常见问题

@aws/address-form-sdk-js 是什么?

Javascript 的地址表 SDK

如何安装 @aws/address-form-sdk-js?

在项目目录运行 npm install @aws/address-form-sdk-js,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)、react-dom(^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws/address-form-sdk-js 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws/address-form-sdk-js 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws/address-form-sdk-js 可以商用吗?

@aws/address-form-sdk-js 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@aws/address-form-sdk-js 的下载量有多少?

根据 npm 官方下载统计,@aws/address-form-sdk-js 在 2026/10/08 – 2026/11/06 这 30 天内被下载 7,708 次,日均约 257 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws/address-form-sdk-js 还在维护吗?

最新版本 1.6.1 发布于 2026/11/07(1 天前);至今共发布 10 个版本,其中过去 12 个月发布了 9 个;首次发布于 2025/11/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。