我们希望使您能够更轻松,更经济地向网络和移动应用程序中添加地图,位置识别以及其他基于位置的功能。到目前为止,执行此操作有些复杂且昂贵,并且还将您与单个提供程序的业务和编程模型联系在一起。
今天介绍Amazon Location Service,我们以预览形式提供Amazon Location,您今天就可以开始使用它。 Amazon Location Service的价格仅为普通替代产品的一小部分,可让您以经济,按需付费的方式访问多个提供商的地图和基于位置的服务。
您可以使用Amazon Location Service来构建知道它们在哪里的应用程序并做出相应的响应。您可以显示地图,验证地址,执行地理编码(将地址转换为位置),跟踪包装和设备的移动等等。当跟踪的项目进入或离开地理围栏区域时,您可以轻松地设置地理围栏并接收通知。您甚至可以在地图上叠加自己的数据,同时保持完全的控制权。
您可以从AWS管理控制台,AWS命令行界面(CLI)或通过一组API访问Amazon Location Service。您还可以使用现有的地图库,例如Mapbox GL和Tangram。
关于Amazon Location的所有信息让我们看一下Amazon Location Service提供给您的资源的类型,然后讨论如何在应用程序中使用它们。
地图– Amazon Location Service使您可以使用我们合作伙伴的数据来创建地图。您可以在Esri和HERE Technologies提供的地图和地图样式之间进行选择,有可能获得更多地图和地图。这些和其他合作伙伴将来会提供更多样式。创建地图后,可以使用GetMapTile函数检索图块(最多16个缩放级别之一)。您不会直接执行此操作,但会改用Mapbox GL,Tangram或其他库。
位置索引–您可以在Esri和HERE提供的索引之间进行选择。索引支持SearchPlaceIndexForPosition函数,该函数返回最接近您提供的位置的位置,例如居住地址或兴趣点(通常称为POI),同时还执行反向地理编码以将位置(一对坐标)转换为清晰的地址。索引还支持SearchPlaceIndexForText函数,该函数使用自由格式的文本(例如地址,名称,城市或地区)搜索地址,企业和兴趣点。
跟踪器–跟踪器通过BatchUpdateDevicePosition函数从一台或多台设备接收位置更新,并可查询设备的当前位置(GetDevicePosition)或位置历史记录(GetDevicePositionHistory)。跟踪器还可以链接到Geofence Collections,以实现对设备进出地理围栏的监视。
地理围栏集合–每个集合都包含定义地理边界的地理围栏列表。这是一个用geojson.io创建的地理围栏,它概述了我附近的一个公园:
运行中的Amazon Location我可以使用AWS管理控制台开始使用Amazon Location,然后在必要时转到AWS Command Line Interface(CLI)或API。我打开亚马逊位置服务控制台,然后单击“试用!”!创建一组入门资源,或者我可以打开左侧的导航并逐一创建它们。我将一一进行,然后点击地图:
现在,我准备将地图嵌入到我的应用程序中,并且有几个选项,包括Amplify JavaScript SDK,Amplify Android SDK,Amplify iOS SDK,Tangram和Mapbox GL(请阅读开发者指南以了解有关每个选项的更多信息) 。
接下来,我要跟踪设备的位置,以便在它们进入或退出给定区域时得到通知。我使用诸如geojson.io之类的GeoJSON编辑工具来创建由多边形构建的地理围栏,并保存(下载)结果文件:
我在左侧导航栏中单击创建地理围栏集合,然后在步骤1中添加我的GeoJSON文件,输入名称和描述,然后单击下一步:
现在,我为跟踪器输入名称和描述,然后单击下一步。它将链接到我刚创建的地理围栏集合:
下一步是安排跟踪器将事件发送到Amazon EventBridge,以便我可以在CloudWatch Logs中对其进行监视。我将设置保持不变,然后单击“下一步”继续:
然后,我可以编写代码或使用CLI更新设备的位置:
一两次之后,我可以检索设备的位置历史记录:
$ aws location get-device-position-history \ -tracker-name MyTracker1 --device-id Jeff1 ------------------------------------------------ | GetDevicePositionHistory | + ---------------------------------------------- + || DevicePositions || | + --------------- + ---------------------------- + | || DeviceId |杰夫1 || || ReceivedTime | 2020-11-05T02:59:17.246Z || || SampleTime | 2020-11-05T02:59:07Z || | + --------------- + ---------------------------- + | |||位置||| || + ------------------------------------------ + || ||| -122.33805 ||| ||| 47.62748 ||| || + ------------------------------------------ + || || DevicePositions || | + --------------- + ---------------------------- + | || DeviceId |杰夫1 || || ReceivedTime | 2020-11-05T03:02:08.002Z || || SampleTime | 2020-11-05T03:01:29Z || | + --------------- + ---------------------------- + | |||位置||| || + ------------------------------------------ + || ||| -122.43805 ||| ||| 47.52748 ||| || + ------------------------------------------ + ||
我可以编写Amazon EventBridge规则来监视事件,并使用它们执行任何所需的处理。当设备进入或离开地理围栏区域时,将发布事件,如下所示:
{ " version&#34 ;:" 0&#34 ;, " id&#34 ;:" 7cb6afa8-cbf0-e1d9-e585-fd5169025ee0&#34 ;, "详细类型&#34 ;:位置地理围栏事件&#34 ;, " source&#34 ;:" aws.geo&#34 ;, " account&#34 ;:" 123456789012&#34 ;, " time&#34 ;:" 2020-11-05T02:59:17.246Z&#34 ;, " region&#34 ;:" us-east-1&#34 ;, "资源":[ " arn:aws:geo:us-east-1:123456789012:geofence-collection / MyGeoFences1&#34 ;, " arn:aws:geo:us-east-1:123456789012:tracker / MyTracker1" ], "细节&#34 ;: { " EventType&#34 ;:" ENTER&#34 ;, " GeofenceId&#34 ;:" LakeUnionPark&#34 ;, " DeviceId&#34 ;:" Jeff1&#34 ;, " SampleTime&#34 ;:" 2020-11-05T02:59:07Z&#34 ;, "位置":[-122.33805,47.52748] } }
最后,我可以创建和使用位置索引,以便可以处理地理对象。我将使用CLI来改变节奏。我创建索引:
然后我查询它以找到该位置附近的地址和兴趣点:
$ aws location search-place-index-for-position --index-name MyIndex1 \ --position" [-122.33805,47.62748]" -输出json \ | jq .Results []。Place.Label " Terry Ave N,西雅图,华盛顿州98109,美国" " 900 Westlake Ave N,西雅图,华盛顿州98109-3523,美国" " 851 Terry Ave N,西雅图,华盛顿州98109-4348,美国" " 860 Terry Ave N,西雅图,华盛顿州98109-4330,美国" "西雅图消防船Duwamish,860 Terry Ave N,西雅图,华盛顿州98109-4330,美国" " 824 Terry Ave N,西雅图,华盛顿州98109-4330,美国" " 9th N N,西雅图,华盛顿州98109,美国" ...
$ aws location文本搜索索引--index-name MyIndex1 \ --text Coffee --bias-position" [-122.33805,47.62748]" \ --output json | jq .Results []。Place.Label " Mohai Cafe,860 Terry Ave N,Seattle,WA 98109,United States" "星巴克,西湖大街1200号,西雅图,华盛顿州98109,美国 " Metropolitan Deli and Cafe,903 Dexter Ave N,Seattle,WA 98109,United States" " Top Pot甜甜圈,590 Terry Ave N,西雅图,华盛顿州98109,美国" " Caffe Umbria,1201 Westlake Ave N,西雅图,华盛顿州98109,美国" "星巴克,西湖大街515号,西雅图,华盛顿州98109,美国 " Cafe 815 Mercer,815 9th Ave N,Seattle,WA 98109,United States" " Victrola Coffee Roasters,500 Boren Ave N,西雅图,华盛顿州98109,美国" " s,美国特里大街520号,西雅图,华盛顿州98109,美国 ...
两种搜索都有其他选择。阅读地理编码,反向地理编码和搜索以了解更多信息。
要知道的事情Amazon Location今天将作为预览启动,您可以立即开始使用。在预览期间,我们计划添加用于路由的API,并且还将尽力在客户反馈和功能请求到达时做出响应。
定价基于使用情况,初始评估期为三个月,可让您免费调用Amazon Location API。在评估期之后,您将支付“ Amazon Location Pricing”页面上列出的价格。
Amazon Location在美国东部(弗吉尼亚北部),美国东部(俄亥俄州),美国西部(俄勒冈),欧洲(爱尔兰)和亚太地区(东京)地区可用。