Я занимаюсь разработкой концепции / прототипа для внутреннего инструмента.Основная предпосылка состоит в том, что у нас есть пара устройств, на которых есть GPS, и они сообщают о своем местонахождении (с типичной точностью GPS в формате NMEA) Java-API, который я построил в облачной среде.
[Device GPS] -> [Sends Cellular GSM request to API] -> [API queries Google
Roads] -> [Google Roads returns snapped coordinates] -> [App maps received
coordinates]
java API берет указанные в отчете координаты и, по сути, отправляет запрос в Google Maps Roads API и использует функцию Snap-to-road
(это, по сути, займет любую точку, которую вы ей дали, вместе с необязательно пройденным путем координат, ивернуть вам координаты, которые, по сути, находятся на пути, по которому, по вашему мнению, вы путешествуете).Это здорово и все, но с одной задержкой.
ЭТО ДОРОГО.
Для двух устройств, сообщающих свое местоположение (аналогично тому, как это делают Uber или Lyft) каждые несколько секунд,стоимость запуска этого приложения, по сути, делает его скрытым.24000 запросов обойдутся вам в 300-500 долларов.Для одного устройства.
Мы предприняли несколько попыток, чтобы принимать запросы к API только в рабочее время, но это все еще едва царапает поверхность.
Я вполне способен написать все, что японадобится (я верю, по крайней мере), или смогу найти библиотеки, которые будут делать то, что я считаю нужным, но я понятия не имею, что выбрать.Я думаю о чем-то вроде кэширования запросов в другой таблице и сначала запрашиваю это, но я не уверен, насколько это будет надежно.
Кто-нибудь реализовывал такое решение или что-то подобное?Мне просто нужно оплатить количество запросов, которые я отправляю в API Карт Google, прежде чем обанкротить этот проект.