DynamoDB запрашивает геолокацию с помощью математических функций в Android Kotlin - PullRequest
0 голосов
/ 24 октября 2018

Я разрабатываю Android-приложение для учебных целей с использованием Kotlin.Я использую DynamoDB в качестве бэкэнда.Я новичок в этом тоже.Я знаю, как запрашивать записи из таблицы в Android Kotlin, используя AWS Android SDK.Я получаю все записи из таблицы, подобной этой.

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 () и прочее.Как я могу использовать эти математические функции?Затем я нашел другой сервис AWS под названием CloudSearch для поиска геолокации.В документах говорится, что его можно использовать для индексации и поиска записей в DynamoDB.Но для Android не существует учебника или документации по использованию этого сервиса CloudSearch для запроса данных геолокации в DynamoDB.Для этого также нет Android SDK.Где я могу найти достойный учебник или документы для моего сценария?

Я посмотрел следующую статью, но где же SDK для Android?Есть ли Android SDK для следующей статьи?

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

1 Ответ

0 голосов
/ 27 октября 2018

Я не нашел решения.Но это то, что я пытаюсь сделать.Я подключу лямбду AWS к моей DynamoDB.Когда элемент будет добавлен, я отправлю его в ElasticSearch или Algolia.Логика синхронизации данных с Elasticsearch или Algolia будет заключаться в функции Lambda.Затем я буду искать / запрашивать данные о географическом местоположении, используя Algolia или Elastic Search.

...