DynamoDB 在 Android Kotlin 中使用数学函数查询地理位置

DynamoDB querying geolocation with math functions in Android Kotlin

我正在使用 Kotlin 开发一个 Android 用于学习目的的应用程序。我正在使用 DynamoDB 作为后端。我也是新手。我知道如何使用 AWS Android SDK 从 Android Kotlin 中的 table 查询记录。我像这样从 table 中获取所有记录。

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())
            }

但我现在要做的是我想在 table 中添加两个新字段,称为纬度和经度。然后根据查询传入的参数location,查询到最近位置的记录。为此,我必须在查询中使用数学函数,例如 sin() 和 cos() 等等。我如何使用这些数学函数?然后我找到了另一个名为 CloudSearch 的 AWS 服务来搜索地理位置。在文档中,它说它可以用于索引和搜索 DynamoDB 中的记录。但是 Android 没有使用该 CloudSearch 服务查询 DynamoDB 中的地理位置数据的教程或文档。也没有 Android SDK。我在哪里可以找到适合我的场景的教程或文档?

I looked at the following article, but where is the SDK for Android? Is there an Android SDK for the following article?

https://aws.amazon.com/blogs/mobile/geo-library-for-amazon-dynamodb-part-1-table-structure/

我还没有找到解决办法。但这就是我想要做的。我会将 AWS lambda 连接到我的 DynamoDB。添加一个项目时,我会将该项目发送到 ElasticSearch 或 Algolia。将数据与 Elasticsearch 或 Algolia 同步的逻辑将在 Lambda 函数中。然后我将 search/query 使用 Algolia 或 Elastic Search 获取地理位置数据。