我正在使用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())
}
但是我现在想做的是我想在表中添加两个新字段,称为纬度和经度。然后查询以根据查询中传递的参数位置来获取最近位置的记录。为此,我必须在查询中使用数学函数,例如sin()和cos()之类的东西。如何使用这些数学函数?然后,我找到了另一个名为CloudSearch的AWS服务来搜索地理位置。在文档中,它说它可以用于索引和搜索DynamoDB中的记录。但是,没有适用于Android的教程或文档可使用该CloudSearch服务查询DynamoDB中的Geolocation数据。也没有适用于此的Android SDK。在哪里可以找到适合我的方案的教程或文档?
我看了以下文章,但是Android的SDK在哪里?以下文章是否有Android SDK?
https://aws.amazon.com/blogs/mobile/geo-library-for-amazon-dynamodb-part-1-table-structure/
答案 0 :(得分:0)
我没有找到解决方案。但是,这就是我想要做的。我将AWS lambda钩接到我的DynamoDB上。添加项目后,我会将其发送到ElasticSearch或Algolia。与Elasticsearch或Algolia同步数据的逻辑将在Lambda函数中。然后,我将使用Algolia或Elastic Search搜索/查询地理位置数据。