Как работает геолокация в Uber или Yandex taxi?

164
11 декабря 2018, 16:30

Начал делать приложение и возник вопрос, а как правильно делать геолокацию. Есть несколько клиентов, каждый клиент должен получать геолокацию остальных клиентов и передавать свою.

Была мысль сделать сервер, на который я буду с клиента передавать геолокацию и сохранять ее в базе данных и после чего передавать этому клиенту геолокацию остальных пользователей списком. Ограничить все это дело 5 секундами (т.е запрос раз в 5-10 секунд). Но тогда получается, что запросы на сервер будут слишком частые, что снизит производительность сервера при большом количестве пользователей.

Так вот вопрос в том, как правильно сделать передачу и получение геолокации.

Answer 1
  • Для начала вам нужно определить списки подписок. Т.е. каким клиентам интересно положение конкретно этого клиента. Врядли интерес всех ко всем.
  • Далее, с клиента передавать на сервер новое месторасположение только в том случае, если оно изменилось (скажем, на 20 метров). Но не чаще, чем раз в n-секунд
  • По приходу на сервер месторасположение клиента рассылается всем, кто в нем заинтересован и, при необходимости, пишется в базу
Answer 2

Мысль правильная, просто передавать нужно по протоколу UDP. Он значительно легче. И передавать можно реже. А еще можно не передавать с клиента, а запрашивать. Например, запрос на получение текущей геолокации остальных запрашивается только в том случае, если кто-то открыл в приложении карту.

READ ALSO
C# WinForms ComboBox SelectedValue null

C# WinForms ComboBox SelectedValue null

Когда закрываю форму легко получаю значение SalectedValue ComboBox но перед ShowDialog формы если ставлю SelectedValue для ComboBox, то ComboBox не ставит егоComboBox внутри...

372
Как корректно отформатировать таблицу Excel, используя C#

Как корректно отформатировать таблицу Excel, используя C#

Всем привет! Появилась задача из полученных данных перекинуть в таблицу и её отформатировать Есть такой вот код:

175
listbox ложное действие

listbox ложное действие

При нажатии на элемент listboxа открывается новая форма, но также это происходит(ложное срабатывание) после заполнение listboxа командой listBox4DataSource...

165
Ошибка при создании скрипта

Ошибка при создании скрипта

При создании нового скрипта юнити пишет "No MonoBehaivour scripts in the file, or their names do not match the file name"

176