android - DynamoDB 在 Android Kotlin 中使用数学函数查询地理位置
问题描述
我正在使用 Kotlin 开发一个用于学习目的的 Android 应用程序。我使用 DynamoDB 作为后端。我也是新手。我知道如何使用 AWS Android SDK 从 Android Kotlin 中的表中查询记录。我从这样的表中获取所有记录。
val dynamoDBClient = AmazonDynamoDBClient(AWSMobileClient.getInstance().credentialsProvider)
val fetchedItems: ArrayList<Any> = ArrayList();
val scanRequest = ScanRequest().withTableName(MainApplication.DB_TABLE_ITEMS);
scanRequest.exclusiveStartKey = lastEvaluatedKey
val scanResult = dynamoDBClient.scan(scanRequest)
scanResult.items.forEach { item ->
val viewItem = ItemDO()
viewItem.id = item.get("Id")?.s
item.get("Images")?.ns?.size.toString())
}
但是我现在要做的是我想在表中添加两个新字段,称为纬度和经度。然后根据查询中传入的参数location查询得到最近位置的记录。为此,我必须在查询中使用数学函数,如 sin() 和 cos() 等。我怎样才能使用这些数学函数?然后我找到了另一个名为 CloudSearch 的 AWS 服务来搜索地理位置。在文档中,它说它可以用于索引和搜索 DynamoDB 中的记录。但是没有教程或文档供 Android 使用该 CloudSearch 服务来查询 DynamoDB 中的地理位置数据。也没有 Android SDK。我在哪里可以找到适合我的场景的不错的教程或文档?
我看了下面的文章,但是 Android 的 SDK 在哪里?下面的文章有 Android SDK 吗?
https://aws.amazon.com/blogs/mobile/geo-library-for-amazon-dynamodb-part-1-table-structure/
解决方案
我还没有找到解决方案。但这就是我想要做的。我会将 AWS lambda 挂钩到我的 DynamoDB。添加项目后,我会将该项目发送到 ElasticSearch 或 Algolia。与 Elasticsearch 或 Algolia 同步数据的逻辑将在 Lambda 函数中。然后我将使用 Algolia 或 Elastic Search 搜索/查询地理位置数据。
推荐阅读
- python - 在排列列表创建期间排除值
- python - 更改 Tornado 中的端点日志记录行为
- python - 如何从内部函数中获取 a 和 b 值
- kotlin - Kotlin 如何调度调用运算符?
- javascript - 将 microtime(true) 转换为 javascript 日期对象
- python - 如何使用具有扩展性的 Kubernetes 处理作业队列
- matlab - 将 simulink 与工作区变量更新同步
- kotlin - 如何使用协程实现非阻塞
- javascript - 在 Next.js 和/或其他形式的 React 服务器端渲染中延迟加载图像
- python-2.7 - 更改 pytest 夹具 log_capture 的处理程序