Автор: Сергей Зиновьев
Многие мобильные и веб-приложения включают в себя разные географические данные, ведь мы сталкиваемся с картами практически везде. Так, они используются в разных социальных приложениях — от геосоциальных сетей вроде Foursquare до сервисов по поиску попутчиков вроде BlaBlaCar. Google, Microsoft, Yahoo и многие другие IT-гиганты предоставляют свой API для простых операций: отображение карт, маркеров на этих картах и проведение наиболее востребованных вычислений. Популярный фреймворк для быстрой разработки Ruby on Rails часто используется для разработки геоинформационных систем (ГИС) и веб-приложений с использованием картографических данных. На простом примере продемонстирую, какие проблемы могут ждать при использовании пространственных данных и как их избежать в Ruby on Rails-приложении.
Как не встретиться со злым вулканом
Итак, мы разрабатываем приложение, и в какой-то момент необходимо добавить функцию поиска кратчайшего прямого расстояния между двумя географическими точками. Казалось бы, ничего сложного? Как бы не так! В своем блоге, в серии записей под тегом GeoRails, Дэниэл Азума приводит пример, когда неумение работать с пространственными данными может привести к трагедии.
Дэниэл предлагает нам рассмотреть следующую гипотетическую ситуацию. Представьте самолет, которому нужно совершить рейс из Сан-Франциско в Афины во время очередного извержения ТогоСамогоВулканаКоторыйНевозможноПроизнести в Исландии. Задача летчика — спланировать маршрут так, чтобы пролететь на безопасном расстоянии от вулкана. Также ему нужно знать длину маршрута, чтобы заправить самолет достаточным количеством топлива. Чтобы верно все рассчитать, командир воздушного судна делает запрос в центр организации воздушного движения.Читать полностью »