我的问题介绍我正在尝试设置Amazon Location Service Place indexes API来检索地点和坐标的建议。但是,我很难理解如何访问API并设置必要的凭据。具体来说,我不确定使用API密钥还是在IAM控制台中创建一个角色进行身份验证更好。
我是亚马逊定位服务的新手,不熟悉设置它的最佳实践。因此,任何关于如何正确设置服务的指导都将是非常感谢的。
我需要在我的web应用程序中,我需要实现一个下拉菜单,它将根据我想要向Amazon Location发出的请求填充位置建议。例如,如果用户写入"New"在文本输入中,我想调用API并检索最相关的地方,如"New York" New Brunswick" New Hampshire"等。
所以如果用户选择了其中一个位置,我可以检索它们的坐标(lat, lng)。
<<p>我的应用程序/strong>我的web应用程序是一个使用。net Framework 6.0的MVC项目。我绝对想使用亚马逊的位置服务,因为我的应用程序正在使用AWS的其他服务。
What I've try我尝试过AWSSDK。LocationService调用它们的API,但没有成功。每次我尝试,我得到这个错误:
{消息";无法确定要授权的服务/操作名称"}
我正在使用我生成的API密钥并像这样传递它:"x-api-key", "my-api-key"我使用的端点是:"https://places.geo.ca-central-1.amazonaws.com/places/v0/indexes/..."(ca-central-1为正确的数据中心)。
Amazon Location Service目前仅支持地图预览版的API key。所以使用Amazon Cognito来处理身份验证。访问授予访问亚马逊位置页面以了解更多信息。
我还写了一篇关于这个用例的博文——它向你展示了如何使用Amplify Geo和Vue.js创建一个带有位置搜索小部件的地图。如果你愿意在你的项目中使用Amplify,我建议你遵循这一点。如果你想使用AWS SDK的JavaScript,看看我的另一篇博客文章,它展示了如何调用亚马逊位置的路由API来获得从a到b的方向。调用位置API将非常类似于此-请参阅calculateRoute
函数,看看它是如何完成的。
希望对你有帮助。