Pull to refresh
12
0
Владимир Калинкин @cylon-v

Пользователь

Send message

Overpass API: следующий уровень владения OpenStreetMap

Reading time 12 min
Views 21K

В своих различных геосервисах мы используем данные OpenStreetMap (OSM). Данные в OSM заносятся, в основном, через специальные программы-редакторы, про самые популярные из которых мы писали тут и тут. На программном уровне редакторы общаются с главным сервером через OSM API. Этот API работает как на чтение, так и на запись и предоставляет лишь минимально необходимые возможности. Через него выборку можно ограничить только прямоугольником, но не произвольной полигональной областью, также нет ни фильтрации данных, ни способов их преобразования перед отправкой клиенту. Но что делать, если тебе нужно выбрать данные из OSM, отсеив много лишнего, желательно сразу показать результаты на карте, и при этом ты ни разу не программист? Тут-то на помощь и приходит Overpass API — мощный инструмент запросов к данным OSM, и Overpass Turbo — веб-приложение, предоставляющее графический интерфейс к Overpass API и дополнительные удобства при работе с запросами.

Читать далее
Total votes 28: ↑28 and ↓0 +28
Comments 10

Как работают сервисы карт и маршрутизации

Level of difficulty Easy
Reading time 8 min
Views 5.7K

В период моей жизни, когда я работал в Санкт-Петербурге, пришла мне интереснейшая задача — создать и интегрировать в один проект функционал карт. По ограничениям бизнес требований, карта должна работать в условиях отсутствия интернета, при этом удовлетворять требования визуального отображения и построения маршрутов. Значит не было возможности использовать готовый API Яндекса или Google, так что пришлось реализовывать механизмы самому.

В этой статье я не буду давать какой то инструкции по реализации такого проекта, а скорее в общем опишу как работаю карты, которым мы постоянно пользуемся.

Как работают сервисы карт и маршрутизации?
Total votes 13: ↑12 and ↓1 +11
Comments 3

Эмодзи как альтернативный способ поиска в картографических сервисах

Level of difficulty Easy
Reading time 8 min
Views 1.2K

Приложение.

Введение

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

За каждым эмодзи стоит определённое его значение. Примеры — можно посмотреть в поиске по эмодзи и / или же в специальных сервисах перевода, например в Яндекс.Переводчике. Есть значения, которые вполне можно использовать в поиске.

Если в поисковой системе человек вбивает эмодзи сам по себе (пример — 🚖), то не столь очевидно что именно он хочет в результатах поиска — просто подробнее узнать о значении этого эмодзи или же что-то другое, например связанное с такси. И если у пользователя при формировании запроса есть потребность «заказать такси» — в связке с эмодзи ему нужно использовать дополнительные уточняющие слова, такие как «заказать».

А вот в картах за счёт контекста — можно сузить возможную потребность до навигационной и тем самым, возможно, избежать необходимости использования дополнительных уточняющих слов. Если на картах человек вбивает в качестве запроса 🚖, то это по идее также как и запросы «такси», «заказать 🚖», «заказать такси» может означать именно поиск такси. Это значит, что эмодзи как возможный язык ввода, кажется, в ряде случаев может быть вполне применим и самодостаточен (не требующий ввода дополнительных слов для уточнения потребности пользователя), потому что использование карт само по себе может сужать список возможных потребностей пользователей до необходимости найти конкретное место и/или организацию.

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

Один из способов реализовать возможность такого поиска — привязать к каждому эмодзи свой смысл-сущность, который будет одинаков на обеих сторонах:

картографического сервиса — при выдаче информации по запросу,

пользователя — для формирования запроса.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 3

Делаем маршрутизацию (роутинг) на OpenStreetMap. Добавляем поддержку односторонних дорог

Reading time 8 min
Views 5.1K

Продолжаем цикл статей про построение систем роутинга со сложными требованиями на основе Open Source базы данных PostgreSQL и расширения PgRouting на карте OpenStreetMap. Сегодня мы поговорим о том, как добавить поддержку односторонних дорог (направлений движения). Зачастую, именно отсутствие этой поддержки является основной причиной смены PgRouting на другой "движок" маршрутизации. Как обычно, все данные и результаты доступны в моем GitHub репозитории OSM Routing Tricks, который я пополняю по мере публикаций.



Небольшой маршрут из 330 адресов на карте OpenStreetMap.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Ортодоксальный Backend

Reading time 14 min
Views 19K


Современный backend разнообразен, но всё-таки подчиняется некоторым негласным правилам. Многие из нас, кто разрабатывает серверные приложения, сталкивается с общепринятыми подходами, такими как Clean Architecture, SOLID, Persistence Ignorance, Dependency Injection и прочими. Многие из атрибутов серверной разработки настолько заезжены, что не вызывают никаких вопросов и используются бездумно. О некоторых много говорят, но никогда не используют. Смысл остальных же либо неправильно интерпретирован, либо перевран. Статья рассказывает о том, как построить простую, совершенно типичную, архитектуру backend, которая не только может без какого-либо ущерба следовать заветам известных теоретиков программирования, но и в некоторой степени может их усовершенствовать.
Читать дальше →
Total votes 38: ↑34 and ↓4 +30
Comments 24

Метафизика Dependency Injection

Reading time 9 min
Views 9.6K
image


Dependency Injection — это часто используемая техника в объектно-ориентированном программировании, предназначенная для уменьшения связанности компонентов. При правильном применении, помимо достижения этой цели, она может привнести поистине магические качества вашим приложениям. Как и любая магия, эта техника воспринимается как набор заклинаний, а не строгий научный трактат. Это приводит к неверному толкованию явлений и, как следствие, неправильному использованию артефактов. В своём авторском материале я предлагаю читателю шаг за шагом, кратко и по сути, пройти логический путь от соответствующих основ объектно-ориентированного дизайна до той самой магии автоматического внедрения зависимостей.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 0

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity