Обновить
16K+

Maps API *

API картографических сервисов

10,75
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Отрисовка карт с условными координатами

Время на прочтение4 мин
Охват и читатели9K

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


В прошлой своей статье я рассказал про построение простых графиков с помощью библиотеки d3, с ее же помощью планировал отрисовывать и карты, но поэкспериментировав с d3, Raphael и paper.js понял что велосипедостроения избежать не удастся и переделал отрисовку на HTML Canvas, о чем и хочу рассказать в данной статье.

Читать дальше →

Кино на карте — узнаём ближайшие киносеансы в ближайших кинотеатрах

Время на прочтение1 мин
Охват и читатели11K
Чаще всего я хожу в кино спонтанно. Внезапно возникает желание оказаться в прохладном тёмном зале, и встаёт задача выбора — куда идти и что смотреть. Одно из условий этой задачи — чтобы выйти из дома в течение ближайших пятнадцати минут, в идеале — прямо сейчас.
Мне надоело всякий раз перебирать по многу страниц на сайте Афиши, и я решил сделать сервис, максимально быстро решающий мою проблему.

Читать дальше →

Скажи мне, где ты, и я скажу тебе, где ты

Время на прочтение7 мин
Охват и читатели24K
В подмосковном Подольске, в микрорайоне Силикатная-2, есть один лайфхак — когда на дворе уже 9 вечера, и пиво в магазинах уже не продают — достаточно просто перейти дорогу, чтобы его купить. Через дорогу Москва — в ней желаемое до 11 найти можно.

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

Исторически на этот вопрос отвечает «обратный геокодер»(reverse geocoder). Он важная часть практически всех картографических АПИ — Google, Яндекс, и даже OSM. Но в большинстве случаев его ответ предназначается человеку, и содержит исключительно текстовое описание локации.

Это-не-технологично! И уж точно непрактично. Esosedi, кушали этот кактус пару лет, а потом просто сделали свой обратный геокодер. Главное как и зачем.

Совсем недавно на хабре искали Смерть Кащееву (nested set и вложеность административных рубрик), ходили по районам(отображение данных регионов на карте), и (не)попадали на счетчик Яндекса (прямой геокодер). А теперь разберем, что такое обратный геокодер, и зачем он нужен. А потом разберем механики его работы.
Читать дальше →

Моя первая карта на Leaflet.js

Время на прочтение4 мин
Охват и читатели48K
Как я делал свою первую карту на Leaflet.js.

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

Итак задание было следующее: есть черно-белый планшет (маленький кусок карты города) размером 5913x7863 пикселей в формате .bmp + .shp слои.
(изначально карты были отрисованы в формате .dwg (формат автокада), но это закрытый формат и с ним ничего не сделаешь, поэтому ребятам пришлось сохранить каждый слой отдельно в .shp + атрибутивные данные в .dbf)

Из этого всего нужно сделать онлайн карту, основной функционал которой — это вывод атрибутов при нажатии на слой и включение/отключение этих слоёв.

Выбор пал на leaflet.js, так как это оболочка с открытым кодом, на ней сделаны OSM и мой любимый 2GIS. К тому же он хорошо работает на мобильных устройствах.
Читать дальше →

О дублировании тайлов веб-карт

Время на прочтение8 мин
Охват и читатели9.5K
Для организации работы веб-карт по технологии Slippy Map требуется организовать тайловое хранилище, в котором могут предварительно рендериться (генерироваться) тайлы в заранее заданном контексте карты, либо использоваться набор сервисов для генерации тайлов по запросу, либо некий симбиоз из первых двух подходов.
Первый подход имеет недостаток — требуется слишком большое хранилище для тайлов. Так, по данным OpenstreetMap по состоянию на март 2011 года требовалось 54ТБ места для хранения тайлов. По моим подсчетам для актуальных данных на июнь 2015 года эта цифра уже составляет около 100ТБ (это только оценка, на реальный эксперимент я не решился) для хранения тайлов масштабов 0...17. Такой «прирост» оценок вызван тем, что за прошедшее время данные OpenStreetMap существенно пополнились, детализировались районы, которые в марте 2011 года были пустыми. Нельзя также списывать со счетов неоптимальность сжатия (в моем случае по сравнению с OpenStreetMap) формата PNG (у меня средний размер тайла составляет 4.63КБ против 633 байт OpenStreetMap'а в марте 2011 года), сложность стиля рисования карты mapnik'ом и прочие мои нюансы. В любом случае требуется ОЧЕНЬ много места для тайлового хранилища, что может себе позволить далеко не каждый сервер. Ситуация усугубляется еще и тем, что для блочных файловых систем маленькие по размеру тайлы расходуют целый блок (тайл размером 103 байта может занимать целый блок, например, 4КБ), что приводит к неэффективному расходованию физического пространства жесткого диска. Для большого количества тайлов (для крупных масштабов карт) в рамках одной директории может еще наблюдаться проблема невозможности хранения требуемого количества файлов либо директорий больше, чем позволяет файловая система. Но при всем при этом данный поход обеспечивает комфортное время выполнения запроса на отдачу тайла.
Второй подход хоть и не требователен к емкости тайлового сервера, но требует организовать и поддерживать несколько сервисов (PostgreSQL, Postgis, HStore, mapnik, renderd, mod_tile, apache), которые бы надежно генерировали и отдавали тайл запрашиваему клиентскому сервису. Также требуется периодически подчищать кэш тайлов. Иными словами платой за небольшую емкость жесткого диска тайлового сервера является сложность архитектуры и значительное время выполнения запроса на отдачу каждого конкретного тайла (по моим подсчетам до 500мс только для 1 клиента, для высоконагруженного сервиса это время может вырасти до неприемлемых величин).
Читать дальше →

Как найти себе место на земле и не попасть на счетчик Яндекса

Время на прочтение5 мин
Охват и читатели41K
… эта история началась давным-давно в далекой-далекой стране Краковия, чьи жители беспечно проживали свои жизни и не знали…

Но сам я местный, и сегодня расскажу вам страшную историю, о том, что мешало спать (лично мне) долгие годы. И это не налоги (с ними все нормально), это — геокодер Яндекс.Карт!
Геокодер — это один из HTTP-сервисов Яндекс.Карт, получающий в запросе текстовое представление адреса и возвращающий в ответе найденные на его основании объекты. Либо наоборот: получающий координаты и отвечающий адресом.

Именно геокодер подскажет, где на карте находится чудная страна Краковия. И именно он будет главным героем этой истории, завязка которой была описана совершенно в другой книге — в древнем фолианте Пользовательское соглашение API Яндекс.Карт. Легенда гласит, что существует ограничение на количество запросов к функции геокодирования. Максимально допустимо делать в сутки не более 25 000 запросов к HTTP и JS геокодеру в сутки. Или овсянка, сэр.

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



Что делать? Для наглядности достанем из кустов рояль — 8 лет назад на Хабре засветился проект «еСоседи» — «Карта интересных мест». Все эти годы я продолжаю работать над ним.
Читать дальше →

Анимация фильтрации маркеров в Yandex Maps API

Время на прочтение3 мин
Охват и читатели13K
Последняя версия API Яндекс-Карт всем хороша. Но нет предела совершенству. Захотелось, чтобы фильтрация объектов на карте происходила через fade.
Давайте разберемся, возможно ли это.

Читать дальше →

Редактирование пространственных данных в Leaflet

Время на прочтение7 мин
Охват и читатели20K
Несмотря на развитие картографических веб-фреймворков, редактирование векторных географических данных всё ещё, по большей части, происходит в настольных приложениях, но пора бы уже переходить к редактированию в браузерах.

Для отрисовки веб-карт существует несколько открытых библиотек, например, OpenLayers и Leaflet. Довольно давно наш выбор пал на Leaflet и мы продолжаем его активно использовать при реализации проектов. Для редактирования геоданных хотелось бы использовать его же и, при этом, иметь возможность интегрироваться с существующими хранилищами пространственных данных.

Для достижения последней цели как правило используются ГИС-сервера (geoserver, mapserver), которые умеют публиковать большое количество разнообразных форматов данных по стандартам OGC. Так, WMS протокол прекрасно справляется с функцией визуализации готовой карты, но не предполагает функции редактирования, для которой резонно использовать WFS-протокол с возможностью изменения данных. Запросы к WMS возвращают уже отрисованные тайлы — картинки, а к WFS — сырую информацию, «исходный код» за этими тайлами. Leaflet поддерживает модули расширения, соответственно, можно поискать готовый компонент, либо написать свой. Т.к. поиск готовых модулей для Leaflet удовлетворяющих результатов не дал, мы приступили к собственной реализации.

По статистике запросов на leaflet.uservoice.com понятно, что данный модуль интересен не только нам.
Приступим к реализации

Установка OpenStreetMap Nominatim для нахождения широты и долготы по введенному адресу

Время на прочтение6 мин
Охват и читатели68K
image

Хотел бы поведать свою историю об установке геокодера Nominatim на выделенный сервер. Изначально предполагалось, что эта задача займёт у меня около 5-7 часов, но не тут то было… Поэтому было решено написать статью c описанием разворачивания Nominatim на сервер до полной работоспособности сайта. Но обо всём по порядку.
Читать дальше

Как добавить карты Bing Maps в Windows-приложение на HTML и JavaScript. Часть 2

Время на прочтение7 мин
Охват и читатели7.5K


И снова, здравствуйте!

Сегодня мы продолжаем знакомство с картами Bing Maps. В предыдущей статье мы разобрались с тем, как добавить карту в Windows приложение, а также посмотрели, как работать с метками на карте.

В этой части мы будем продолжать улучшать нашу карту и добавлять различные полезные функции, такие как определение GPS-координаты, построение маршрутов и отображение информации о дорожной ситуации.
Читать дальше →

Как добавить карты Bing Maps в Windows-приложение на HTML и JavaScript. Часть 1

Время на прочтение6 мин
Охват и читатели19K


Всем привет!

В этой статье мы научимся работать с Bing-картами в Windows-приложениях. В результате мы получим приложение на JavaScript с использованием Bing Maps SDK.

Помимо использования карты в приложении, мы рассмотрим дополнительные возможности SDK. Научимся изменять вид карты, добавлять метки и описания к ним.

Читать дальше →

ObjectManager в API Яндекс.Карт. Как быстро отрисовать 10 000 меток на карте и не затормозить всё вокруг

Время на прочтение10 мин
Охват и читатели116K
Перед разработчикам, которые используют API Яндекс.Карт, довольно часто встаёт задача отобразить много объектов на карте. Действительно много — порядка 10 000. Причем эта задача актуальна и для нас самих — попробуйте поискать аптеки на Яндексе. На первый взгляд кажется: «А в чем собственно проблема? Бери да показывай». Но пока не начнешь этим заниматься, не поймешь, что проблем на самом деле целый вагон.



Вопросы по большому количеству меток с завидной регулярностью поступают в наш клуб и техподдержку. Кто все эти люди? Кому может быть интересно показать на карте больше 10 меток? В этом посте я подробно рассмотрю весь вагон проблем и расскажу, как в API появились инструменты, помогающие разработчикам оптимально показать большое количество объектов на карте.
Читать дальше →

BlackHole.js с привязкой к картам leaflet.js

Время на прочтение12 мин
Охват и читатели24K
Приветствую вас, сообщество!

Хочу предложить вашему вниманию, все таки доведенную до определенной точки, свою библиотеку для визуализации данных blackHole.js использующую d3.js.
Данная библиотека позволяет создавать визуализации подобного плана:
картинки кликабельные
image или

Статья будет посвящена примеру использования blackHole.js совместно с leaflet.js и ей подобными типа mapbox.
Но так же будут рассмотрено использование: google maps, leaflet.heat.

Получится вот так =)

Поведение точки зависит от того где я находился по мнению google в определенный момент времени

Посмотрите, а как перемещались вы?...
Детали...

Ближайшие события

Недостающие карты: как проект расшифровки генома человека, только для городов

Время на прочтение7 мин
Охват и читатели18K
Огромное число поселений, наиболее уязвимых для катастроф и эпидемий, оставались белым пятном на карте мира… до сегодняшнего дня. Станьте частью беспрецедентного плана: нанести на карту самые далёкие уголки мира.

Отдел «Guardian Cities» примет у себя картовстречу проекта «Недостающие карты»: нарисуем карту африканского города. Присоединяйтесь: cities@theguardian.com

image
Карта Монровии (Либерия) до и после. Благодаря команде гуманитарной картопомощи (Humanitarian OpenStreetMap Team, HOT), в борьбе с вирусом Эбола городу поможет свободная электронная карта.

В 2010 году землетрясение ударило по Гаити. Сотни тысяч человек погибли. Но худшее ожидало впереди. Эпидемия холеры вырвалась из-под контроля. С Иваном Гейтоном (Ivan Gayton) из организации «Врачи без границ» (Médecins Sans Frontières, MSF) связалась медсестра из удаленной деревни, затерянной среди гаитянских лесов. «Помогите, пожалуйста,» — просила она, — «Нас настигла жуткая болезнь, с которой мы ещё не сталкивались».

Читать дальше →

Свои карты на leaflet.js

Время на прочтение2 мин
Охват и читатели48K
В городе Красноярске намечено проведение Универсиады в 2019 году, в связи с этим и не только администрация Красноярска проводит разработку генерального плана территориального развития города до 2033 года. Недавно чиновники выложили схемы генерального плана на сайте администрации города для общественного обсуждения. Но вот незадача: просмотр и анализ схем неудобен, потому что файлы имеют большие размеры и разрешение. Например, файл основной схемы имеет размер 43,34Мб и разрешение 19256x16019px. У меня компьютер тормозит при просмотре такой картинки.

Немного поскриптовав с коллегами, сделали вот такую интерактивную карту antirek.github.io/krskmap/main/index.html



Далее немного подробнее, как сделать свою карту на leaflet.js из картинки с большим разрешением.

Читать дальше →

Добро пожаловать в сообщество российских Map Maker’ов

Время на прочтение2 мин
Охват и читатели14K
Рады сообщить, что в России теперь работает Map Maker — онлайн-инструмент, который позволяет миллионам людей по всему миру вносить свой вклад в развитие и улучшение Google Карт. С его помощью можно добавлять малоизвестные маршруты или любимые места, наносить на карты дороги и обновлять уже существующие данные. Внесенные вами изменения после модерации появятся на Google Картах — как десктопных, так и мобильных, в сервисе Google Планета Земля, а также на других сайтах через API Google Карт.

Читать дальше →

2GIS API 2.0

Время на прочтение4 мин
Охват и читатели60K
Мы рассказали про новый 2ГИС почти всё. Точнее, почти обо всём, с чем сталкивается пользователь. Настало время рассказать о том, что у него “под капотом”. Угадали, речь об API 2ГИС.

Если вы пользовались новым 2ГИС с момента его появления, вы уже видели 2GIS API 2.0 в деле. Сегодня же он вышел из статуса беты и стал доступен всем желающим. Отдельно хотим поблагодарить тех, кто участвовал в тестировании: ребята, спасибо, вы помогли сделать продукт именно таким, каким он получился. То есть более, чем неплохим.

Если вам не терпится попробовать новый API, то посмотрите сюда. Те, кто любит не только смотреть, но и читать, загляните под кат.


Читать дальше →

Google Maps v2 для Android: Всплывающее окно с полноценной перерисовкой и поддержкой событий ввода

Время на прочтение6 мин
Охват и читатели18K
image

С объявлением библиотеки Google Maps v1 для Android устаревшей прекратилась и выдача ключей. Разработчикам была предложена новая версия — быстрее, выше, сильнее лучше, удобнее старой. Чего стоила попытка отобразить с ее использованием несколько точек на карте и несложное всплывающее окно с изображением, небольшим описанием и кнопкой – читайте под катом.
Читать дальше →

Простая публикация геоданных на собственной карте на базе 2ГИС

Время на прочтение4 мин
Охват и читатели30K
Недавно передо мной встала интересная задача — отображать на сайте карту, с различными объектами, причем этих объектов могут быть десятки и сотни, а управлять ими должен уметь любой менеджер ниже среднего звена.

Более формально задача сводилась к тому, чтобы дать возможность пользователям задавать некий список гео-объектов, дать им возможность легко и быстро этими объектами управлять и автоматически отображать эти объекты на некоей карте.

Для реализации задумки была выбрана связка Google Docs и API картографического сервиса 2ГИС. Решение получилось действительно простым, в духе знаменитых «30 строк» :)
Читать дальше →

Момент истины

Время на прочтение1 мин
Охват и читатели8.1K
На таймере обратного отсчета осталось совсем чуть-чуть. Гости собрались и вот-вот уже всё случится. Если вы не поняли, о чем речь — она о пресс-конференции 2ГИС, которая состоится в центре Digital October через считанные минуты. На ней мы расскажем о прошлом, настоящем и будущем 2ГИС и покажем нечто, что, надеемся, сделает вашу жизнь еще удобнее.



Запасайтесь попкорном, откиньтесь на спинку кресла, как это предлагалось сделать при установке Windows 98, и наслаждайтесь просмотром.