Есть ли для меня элегантный способ создания отношений между пространственными данными? - PullRequest
0 голосов
/ 05 октября 2019

Итак, я экспериментирую с различными библиотеками, чтобы попытаться создать приложение, основанное почти на реальном времени, на основе определения местоположения.

То, что я по сути пытаюсь сделать, - это создать приложение для Android, которое отметит время в длинном / латах Nколичество устройств каждую минуту, а затем запрашивает эти записи меток времени и возвращает все другие устройства, которые были в непосредственной близости от устройства, которое создает запрос.

Так что я подумываю использовать ElasticSearch для этого, и у меня есть что-то вроде:

PUT /my_locations
{
    "mappings": {
        "properties": {
            "pin": {
                "properties": {
                    "location": {
                        "type": "geo_point"
                    }
                }
            }
        }
    }
}

PUT /my_locations/_doc/1
{
    "pin" : {
        "location" : {
            "lat" : 40.12,
            "lon" : -71.34
        }
    }
}

И тогда я могу запросить с помощью:

GET /my_locations/_search
{
    "query": {
        "bool" : {
            "must" : {
                "match_all" : {}
            },
            "filter" : {
                "geo_distance" : {
                    "distance" : "200km",
                    "pin.location" : {
                        "lat" : 40,
                        "lon" : -70
                    }
                }
            }
        }
    }
}

ССЫЛКА: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-query.html

Таким образом, это дает мне механизм для помещения данных временной метки, поступающих с устройства, а затем запрашивает их - однако, каков мой лучший подход для сохранения отношений -

  • Должен ли я иметь в документе идентификатор, который я мог бы вернуть, это сопоставление с какой-либо другой таблицей устройств?

  • Есть ли лучший способ добиться того, чего я хочу?

Я также посмотрел базу данных Firebase Real-Time, которая выглядит многообещающе, но я был бы признателен за любой совет, поскольку у меня нет опыта в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...