Итак, я экспериментирую с различными библиотеками, чтобы попытаться создать приложение, основанное почти на реальном времени, на основе определения местоположения.
То, что я по сути пытаюсь сделать, - это создать приложение для 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, которая выглядит многообещающе, но я был бы признателен за любой совет, поскольку у меня нет опыта в этом.