使用 Amazon Location Service 构建位置信息应用 - 地图、地理编码与追踪

介绍通过地图显示、地理编码、路线计算、设备追踪四大功能构建位置信息应用的实现模式。

Location Service 的主要功能

Amazon Location Service 提供地图显示、地理编码(从地址转换为坐标)、逆地理编码(从坐标转换为地址)、路线计算、地理围栏和设备追踪这 6 项功能。在 2024 年 11 月的更新中,API 的体系发生了变化,地图归入 geo-maps,地点搜索归入 geo-places,路线归入 geo-routes,分成了 3 个独立的命名空间。这 3 个查询类系列不需要事先创建地图资源或搜索索引,只要发放 API 密钥即可调用。另一方面,积累设备位置的追踪器和存放地理围栏的集合,现在仍然要先作为 AWS 资源创建再使用。截至 2026 年 8 月,数据的提供方为 Esri、HERE,以及面向东南亚的 GrabMaps;关于地图瓦片,仅在经由上一代地图资源时,还可以选择源自 Open Data 的样式。覆盖范围和使用条件因提供方而异,因此要根据对象地区和用途来选择。

地图显示与地理编码的实现

在 Web 应用中嵌入地图使用 MapLibre GL JS。只需把 geo-maps 的 GetStyleDescriptor 返回的样式描述符 URL(在 https://maps.geo.<区域>.amazonaws.com/v2/styles/Standard/descriptor 上附加配色、变体和 API 密钥的形式)传给 MapLibre 的 style,就会显示交互式地图。从浏览器直接调用的查询类操作以 API 密钥授权为基本方式,密钥可以设置有效期,并按 HTTP 引用来源或应用标识符限制使用范围。不过,向追踪器写入位置、管理地理围栏以及管理密钥本身,都需要通过 IAM 或 Amazon Cognito 进行授权,因此公开页面的地图用密钥、发送位置的一方用 Cognito 的已认证角色,这样的两层构成比较容易处理。地址搜索方面,geo-places 的 Geocode 根据地址字符串返回坐标,ReverseGeocode 根据坐标返回地址。此外还有全文搜索的 SearchText、周边搜索的 SearchNearby、输入补全的 Autocomplete 和 Suggest,以及根据标识符获取详细信息的 GetPlace。搜索时可以指定优先返回附近候选的偏置位置(BiasPosition),或按国家代码等缩小候选范围的筛选条件,从而做出偏向日本国内地址搜索的设置。另外,SearchText 采用互斥规格,偏置位置(BiasPosition)、矩形筛选(Filter.BoundingBox)、圆形筛选(Filter.Circle)之中只能指定 1 个。

地理围栏与设备追踪

地理围栏是定义虚拟地理边界的功能。边界的形状可以从圆形、多边形、多重多边形中选择,顶点较多的形状可以用 Geobuf 格式登记。把地理围栏集合关联到追踪器后,每次位置更新都会进行评估,设备的进入和离开会作为事件送达 EventBridge。事件的 source 为 aws.geo,detail-type 为 Location Geofence Event,detail 中包含 ENTER 或 EXIT 的类别、地理围栏 ID、设备 ID、位置和获取时间,因此只要把 Lambda 或 Step Functions 放在订阅端,就能把通知和记录自动化。可以用于配送车辆到达配送区域时的通知、员工进入特定区域时的打卡自动化、孩子离开学校区域时的警报等。如果想提前掌握到达情况,可以使用 ForecastGeofenceEvents,传入设备的位置和速度后,会返回越过边界的预测时间(省略速度时只返回当前是否在内部的判定)。追踪器是收集和保存设备位置信息的组件,通过 API 发送位置更新后,历史记录会保留 30 天(截至 2026 年 8 月官方文档记载的值)。位置除了精度之外,还可以附加速度、行进方向等任意元数据,最多 3 项。削减冗余更新的筛选可以从 3 种方式中选择,默认是每 30 秒只保存 1 条的 TimeBased。此外还有忽略不足 30 m 移动的 DistanceBased,以及忽略测量精度范围内移动的 AccuracyBased。如果对停着的车辆持续发送的位置进行抽减,就能直接减少下一节所述的位置更新计费条数。

Location Service 的定价

(截至 2026 年 8 月,已在美国东部(弗吉尼亚北部)和亚太地区(东京)2 个区域分别确认。两个区域价格相同)Location Service 不是按持有而是按使用量计费,计费的轴分为地图瓦片;静态地图图像;地点搜索;路线计算;位置的写入、读取、完整性验证;设备删除;地理围栏的评估、管理、持有;以及到达预测。地图瓦片每 1,000 个瓦片 0.04 美元,返回 1 张图像的静态地图每 1,000 次请求 0.50 美元。地点搜索的单价随响应的档位而变,每 1,000 次 Core 为 0.50 美元,Advanced 为 1.50 美元,保存结果时为 4.00 美元,输入补全(Autocomplete、Suggest)为每 1,000 次请求 0.20 美元。路线计算同样是每 1,000 条路线 Core 为 0.50 美元,Advanced 为 1.50 美元,Premium 为 4.00 美元,也有像到达范围的计算、道路吸附这样不设 Core 档位的操作。适用哪个档位会显示在响应的 PricingBucket 中,因此用预想的操作调用 1 次来确认是可靠的。位置追踪不是按每台设备的月费,而是由发送的位置条数决定,采用阶梯计费。每 1,000 条,每月 50 万条以内为 0.05 美元,500 万条以内为 0.035 美元,5,000 万条以内为 0.025 美元,超出部分为 0.0125 美元。位置读取和设备删除各为每 1,000 条 0.05 美元,位置完整性验证(PositionVerify)为每 1,000 条 1.00 美元。地理围栏评估每 1,000 条,每月 25 万条以内为 0.16 美元,200 万条以内为 0.11 美元,2,500 万条以内为 0.07 美元,超出部分为 0.06 美元;地理围栏的创建、读取、更新、删除、列出等管理操作为每 1,000 条 0.05 美元,到达预测为每 1,000 条 1.75 美元。不按使用量而按持有计费的是地理围栏,每 1,000 个已登记的地理围栏每月 0.20 美元。如果让 100 辆每 10 秒发送一次位置的车辆运行,1 天就会超过 86 万条,因此通过筛选进行抽减会直接体现在费用上。免费额度有 2 种体系并存,适用的是定价页面上“前 3 个月”的表格,还是发给 2025 年 7 月 15 日以后创建的账户的免费套餐抵扣金,会使剩余量不同,因此实际剩余量要在账单控制面板中确认。月使用额超过 5,000 美元的规模可以咨询批量折扣。与商用地图 API 的费用差距会因使用的构成而大幅变化,因此按上述每个轴套用自己的预想条数来估算是可靠的。

数据提供商的选择

Location Service 在地图和地点搜索的背后使用外部的数据提供商。截至 2026 年 8 月,提供方为 Esri、HERE,以及面向东南亚的 GrabMaps,仅在经由上一代地图资源时,还可以选择源自 Open Data 的地图样式。覆盖范围、地址表示的粒度和地图的外观存在差异,因此要对照对象地区和应用的用途进行确认。使用条件也并不统一。AWS 服务条款中有一项条款,要求在把 Esri 的数据用于追踪自有业务资产或为其计算路线时取得书面同意;而 HERE 的数据不允许保存以日本为对象的结果。GrabMaps 提供的区域有限。如果想把搜索结果保存到自己的数据库中,需要在请求的 IntendedUse 中指定保存用途,单价也与不保存时不同。还需要注意不同区域可用的操作和地图样式有所不同,要先在官方的提供情况表中确认对象区域再进行设计。从功能需求和条款两方面甄别提供方,才能兼顾质量与法务。

路线计算与到达时间的运用

geo-routes 用 5 个操作处理路线。CalculateRoutes 根据出发地和目的地(包括途经点)返回路线和所需时间,OptimizeWaypoints 重新排列多个停靠点的顺序,缩短总移动距离。CalculateRouteMatrix 会汇总返回大量出发地和目的地组合的所需时间,因此可用于选择最近的据点、分配车辆等判断。CalculateIsolines 以面的形式返回在指定时间或距离内可到达的范围,适合商圈和可配送区域的可视化。SnapToRoads 把包含 GPS 偏差的轨迹贴合到实际道路上,让行驶记录的汇总更容易处理。无论哪个操作,都可以指定交通方式(轿车、卡车、行人等)、想避开的道路条件、卡车的尺寸和重量等约束,从而得到贴近实际的路线。与地图显示结合后,就能以用户容易理解的方式呈现路线,构建配送或导航应用。

隐私与安全

位置信息是敏感数据,需要谨慎处理。在地点搜索中,有一种机制要求在请求的 IntendedUse 中明确结果是只使用 1 次还是要保存,如果不需要保存,就保持默认的单次使用进行调用,可以做到不留下不必要的数据。提供方的条款也带来限制,例如 HERE 的数据不允许保存以日本为对象的结果。访问通过 IAM 控制:从浏览器调用的查询类操作给 API 密钥加上有效期和引用来源限制,位置写入和地理围栏的管理只允许已认证的主体进行。在追踪设备位置的用途中,要明示收集的目的,并建立取得用户同意的机制。追踪器的位置历史会在 30 天后消失,如果需要保留更长时间,就准备自己的保存位置,并把保留期限和删除一并纳入设计。在追求易用性的同时兼顾保护用户隐私的设计,是位置信息应用获得信任的条件。

使用场景与前端集成

Location Service 可以嵌入各种各样的应用。在地图上实时展示配送状况的配送追踪、掌握车辆和资产当前位置的管理、查找附近门店的门店搜索等是代表性的例子。在前端,与地图绘制库结合,把获取的数据以可视化的方式显示出来。设置地理围栏后,就能检测进出特定区域的情况,并触发通知或操作。根据需求组合地图、搜索、路线、追踪这些基本功能,无需自行构建地图基础设施,就能实现多种多样的位置信息服务。

总结

Location Service 是一项可以把地图的 geo-maps、地点搜索的 geo-places、路线的 geo-routes 这 3 个系列与追踪器和地理围栏组合起来,构建位置信息应用的服务。查询类操作不必创建资源,用 API 密钥即可调用,因此如果只需要地图和搜索,就能从小规模起步。从其他公司的地图 API 迁移时,有一条途径可以用 AWS 公开的 Amazon Location Migration SDK 替换现有代码中的调用,费用则按计费的轴分别套用预想条数来估算。位置的写入用 IAM 或 Amazon Cognito 保护,地理围栏的进入和离开发送到 EventBridge,就能扩展为事件驱动的位置信息应用。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享