С помощью карт можно:
- построить маршрут
- измерить расстояние
- оценить масштаб
- увидеть любую улицу глазами прохожего
- узнать информацию о реальном объекте
- определить местоположение (как своё, так и других)
- определить и сравнить характеристики регионов
Карты от Google и Яндекса
Два базовых и самых популярных сервиса — Google Maps и Яндекс Карты. Они довольно простые, но их функционала будет достаточно для краткого описания маршрута, иллюстрации местоположения или расстояния, а также демонстрации дорожной ситуации.
Вы можете собрать собственную карту, изменив дизайн, добавив слои, метки и изображения. Интерактивные карты Гугла и Яндекса можно использовать на своём сайте или в приложении.
О том, как это сделать, можно прочитать тут:
— Google Maps API
— API Карт Яндекса
Данные Wikimapia полностью созданы добровольцами. Внося свой вклад, пользователь приобретает опыт и получает доступ к более продвинутым инструментам. Пользователь также может делиться данными и картами в блогах, на сайтах и в социальных сетях.
Отдельным приложением Google предлагает интерактивную модель мира — Google Earth. На ней отлично видны рельеф и реальные размеры объектов. Многие крупные города воссозданы с помощью 3D-зданий. У «Планеты Земля» масса графических слоёв для изучения, а также карты Марса, Луны и всего звёздного неба.
Вы и сами можете отрисовать объекты, которых ещё нет. Для этого ознакомьтесь с Руководством по 3D-моделированию. Хотя Google Earth работает как отдельное приложение, которое нельзя просто взять и вставить в свой проект, его можно использовать, к примеру, для съёмки 3D-туров. Google Планета Земля Pro предлагает ещё и бизнес-инструменты.
OpenStreetMap
У неё есть несколько слоёв на выбор, среди которых, например, карта для велосипедистов. Можно отдельно выгружать города и континенты. Узнайте, как экспортировать данные OpenStreetMap.
2ГИС
Этот сервис специализируется на точных данных об организациях, которые можно найти на карте. Изучите инструкцию, чтобы узнать как можно использовать виджет 2GIS на своём сайте. Если вы хотите заявить о себе через данный сервис, попробуйте 2ГИС для бизнеса с набором инструментов для продвижения. Полезная функция: можно встроить карту, которая покажет в указанном регионе заведения, отсортированные по категориям.
ZeeMaps
Сервис предлагает инструменты для добавления больших объёмов информации и её анализа на карте. Посмотрите эти видео-инструкции, чтобы понять, как кастомизировать карту и добавить на неё новые слои и элементы.
ArcGIS
Огромное количество инструментов для визуализации данных есть у ArcGIS. Они рассчитаны в первую очередь на профессионалов, поэтому имеют только платную подписку. Зато возможности для аналитики данных и разработки новых интерактивных карт практически безграничны.
CartoDB
Сервис тоже имеет богатый набор инструментов для визуализации данных. Карты получаются очень динамичными и информативными. Научиться делать такие можно здесь.
Scribble Maps
Этот сервис отличает возможность выгружать карты в самых разных форматах.
StoryMap JS
Сервис, который позволяет создавать из карт целые истории — StoryMap JS. Составьте маршрут и добавьте текст, фото или видео к каждой точке на карте.
Можно использовать свои карты или фотографии, загрузив их в формате изображения и расставив на них точки с описаниями.
Tripline
Пользователи Инстаграм могут подключать свои аккаунты и импортировать свои фотографии в Tripline. Сервис также интегрируется с Flickr, Twitter, Facebook и другими соцсетями.
GeaCron
Историческая карта от GeaCron может пригодиться для проекта по истории.
Windyty и Planet OS
Если вы рассказываете о погоде, то смело встраивайте Windyty — красивый погодный глобус с неплохим набором инструментов. Для профессионалов отрасли есть также Planet OS.
tairov_baxtiyor_617-19_sr_1.pptx
Основные этапы создания цифровых электронных карт
Основные этапы создания цифровых электронных карт
Что такое цифровая карта? Электронная цифровая карта (цифровая карта местности) – цифровая модель местности, созданная путем цифрования картографических источников, фотограмметрической обработки данных дистанционного зондирования, цифровой…
Что такое цифровая карта?
Электронная цифровая карта (цифровая карта местности) – цифровая модель местности, созданная путем цифрования картографических источников, фотограмметрической обработки данных дистанционного зондирования, цифровой регистрации.
Цифровая карта является основой информационного обеспечения автоматизированных картографических систем (АКС) и географических информационных систем (ГИС) и может являться результатом их работы.
Цифровые карты могут непосредственно восприниматься человеком, при визуализации электронных карт (на видеоэкранах) и компьютерных карт (на твёрдой основе), а могут использоваться как источник информации в машинных расчётах без визуализации в виде изображения.
Основные этапы создания цифровых электронных карт
Основные этапы создания цифровых карт
Основные этапы создания цифровых карт
Автоматизированное преобразование исходной картографической информации в цифровую форму.
Символизация цифровой картографической информации и автоматизированное составление электронных карт.
Разработка пользовательской системы управления базами данных для работы с электронными картами.
Первый этап На первом этапе решается задача получения на основе имеющихся исходных картографических материалов (аэрокосмических снимков, расчлененных оригиналов и цветных тиражных оттисков карт) векторной цифровой…
Первый этап
На первом этапе решается задача получения на основе имеющихся исходных картографических материалов (аэрокосмических снимков, расчлененных оригиналов и цветных тиражных оттисков карт) векторной цифровой модели карты – основы электронной карты.
Эта задача решается следующими основными методами:
методом цифрования исходных картографических материалов на планшете (цифрователе) путем отслеживания контуров объектов, подготовки и ввода семантики, структуризации цифровой информации;
методом сканирования исходных картографических материалов.
При этом для автоматизации распознавания и векторизации растрового изображения целесообразно использовать аппарат картографической экспертной системы для настройки и обучения программного обеспечения на заданные параметры распознаваемых элементов и объектов местности и карты. Реализуемые в настоящее время сканерные технологии автоматизированного получения векторной цифровой информации обеспечивают автоматизацию распознавания порядка 90% по рельефу, 50-60% по гидрографии и растительному покрову при использовании издательских оригиналов карт.
СКАНИРОВАНИЕ В результате сканирования создается растровое изображение, которое нуждается в дальнейшей векторизации , т
СКАНИРОВАНИЕ
В результате сканирования
создается растровое изображение, которое нуждается
в дальнейшей
векторизации,
т. е. переводе растровой формы в векторную
Второй этап На втором этапе решаются задачи: – символизации векторной модели; составления электронной карты по уровням нагрузки; контроля и редактирования символизированных электронных карт; получения архивной…
Второй этап
На втором этапе решаются задачи: – символизации векторной модели; составления электронной карты по уровням нагрузки; контроля и редактирования символизированных электронных карт; получения архивной графической символизированной копии электронной карты.
Сущность процесса символизации состоит в присвоении каждому объекту кода (N) соответствующего условного знака из библиотеки условных знаков по классификационному коду, характеристикам объектов и их значений. Этот процесс выполняется автоматически в зависимости от масштаба и вида электронных карт. При этом создается унифицированная библиотека условных знаков и шрифтов. Каждый условный знак имеет свое цифровое описание – векторное или (и) растровое. Кроме этого для последующей визуализации готовится массив последовательности вывода картографического изображения.
Одной из существенных характеристик ЭК является уровень нагрузки. Исходное изображение, например, для электронной карты масштаба 1:50000 принимается за базовое. Далее каждому объекту в зависимости от его значимости присваивается один из уровней нагрузки (1,2,3,4). Такой подход обеспечивает читаемость картографического изображения на экране дисплея практически при любом его территориальном охвате (окне) в пределах всего номенклатурного листа.
ВЕКТОРИЗАЦИЯ РАСТРОВОЙ ОСНОВЫ Формирование изображения в векторном формате осуществляется путем ручной обводки (обрисовки) растровой подложки (линейных и площадных объектов) или построение внемасштабных условных знаков точечных…
ВЕКТОРИЗАЦИЯ РАСТРОВОЙ ОСНОВЫ
Формирование изображения в векторном формате осуществляется путем ручной обводки (обрисовки) растровой подложки (линейных и площадных объектов) или построение внемасштабных условных
знаков точечных объектов с помощью инструментария программы
Составление производится в цветах издания по слоям, на каждом из которых располагается один элемент
содержания карты или его часть
РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ СОДЕРЖАНИЯ
РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ СОДЕРЖАНИЯ КАРТЫ
ПО СЛОЯМ
Количество слоев определяется сложностью картографического изображения
Каждый элемент содержания карты помещается на отдельный слой (растр-1, гидрография-2, границы-3, пути сообщения-4,
населенные пункты-5 и др.); 6-
совмещенное изображение
Распределение картографического изображения по слоям позволяет производить его редактирование на любой стадии компьютерного
составления карты, изменять порядок наложения слоев друг на друга, блокировать, отключать
слои и т. д.
Одновременно производятся редактирование, генерализация и корректура изображения
ПОСТРОЕНИЕ ВНЕМАСШТАБНЫХ УСЛОВНЫХ
ПОСТРОЕНИЕ ВНЕМАСШТАБНЫХ УСЛОВНЫХ ЗНАКОВ ТОЧЕЧНЫХ ОБЪЕКТОВ
Осуществляется с помощью инструментария программы векторной графики
В процессе построения условные знаки могут
многократно редактироваться с изменением размеров, рисунка знака, толщины и цвета контура, цвета заливки,
текстуры
Из построенных условных знаков могут быть созданы библиотеки для
многократного использования при составлении карт различной тематики
ТИРАЖНЫЙ ОТТИСК КАРТЫ
ТИРАЖНЫЙ ОТТИСК КАРТЫ
Основные этапы создания цифровых электронных карт
Заключение В настоящее время ГИС-технологии применяют практически во всех сферах человеческой деятельности
Заключение
В настоящее время ГИС-технологии применяют практически во всех сферах человеческой деятельности. При этом наибольшее распространение получили классические двухмерные геоинформационные системы.
Таким образом, будучи применимы в самых различных сферах деятельности человека, включая все преимущества классических ГИС, но решая более сложные и новые задачи, трехмерные ГИС (3D) становятся намного более эффективными. Поэтому на сегодняшний день одной из основных тенденций мирового рынка в области проектирования является переход от двухмерного проектирования к трехмерному моделированию, а также внедрение современных трехмерных геоинформационных систем и их выход на первый план.
Спасибо за внимание
Спасибо за внимание
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
Введите ваш emailВаш email
Что такое интерактивные карты и зачем они нужны
Интерактивные карты — карты, с которыми можно взаимодействовать, чтобы получить расширенную информацию в удобном формате. Например, карта проезда, с маршрутом путешествия и промежуточными объектами до точки назначения.
Вот, в каких случаях используют интерактивные карты на своих площадках тревел-бренды и контент-мейкеры.
Разместить большой объём информации
Можно разместить большой объём данных в таблице или добавить длинный список, но тогда взаимодействовать с контентом будет неудобно. Для этой задачи лучше подходит интерактивная карта, которая обеспечивает удобное взаимодействие с информацией.
У Авиасейлс есть интерактивная карта низких цен на авиабилеты, которая помогает сравнить стоимость билетов по разным направлениям. Информация появляется по мере масштабирования, а все точки кликабельные.
С помощью такой карты тревел-блогеры могут создать интерактивный гид по конкретной стране или городу и добавить точки для всех достопримечательностей, рекомендуемых заведений или других объектов.
Сравнить географические объекты
После закрытия многих стран из-за пандемии путешественники в первую очередь проверяют не стоимость авиабилетов, а доступность направлений для туристов. Эту информацию можно показать на интерактивной карте и отметить страны разными цветами. Тогда за пару секунд легко понять, куда можно лететь, а куда нет.
У Тинькофф Путешествий есть интерактивная карта «Куда лететь». Если активировать все фильтры в правом верхнем углу, можно быстро отсортировать страны по доступности. Зелёные — въезд открыт, жёлтый — есть ограничения, красный — закрыты. По клику на регион открывается окно с дополнительной информацией и кнопкой покупки авиабилетов.
В блоге карту такого формата можно использовать для разных задач. Например, показать страны, в которых есть горнолыжные курорты или лучшие условия для переезда фрилансеров.
Показать изменения
Таймлайн идеально подходит для визуализации последовательности шагов. Если есть исторические данные, с помощью интерактивной карты можно показать любые изменения. К примеру, создать карту распространения 5G сетей в мире.
В 2019 году голландский дизайнер Даан Лутер выпустил карту с таймлайном появления новых объектов Airbnb в Стамбуле на основе данных сервиса. Каждому шагу соответствуют вспышка на карте. Возникновение новой точки — «захват» ещё одного района, а рост точки — увеличение числа доступных объектов.
С помощью интерактивной карты с историческими данными в тревел-блоге можно показать, как менялась стоимость перелёта из одной страны в другую или провести экскурс по определённому региону.
Показать перемещение
Рассказать о перелётах можно с помощью текста, но интерактивная карта сильнее вовлекает читателей во взаимодействие со страницей.
У авиакомпании Red Wings есть карта доступных направлений. По клику на выбранную точку появляются интерактивные маркеры с доступными маршрутами и стоимостью авиабилетов.
Тревел-блогеры с помощью интерактивной карты могут создать онлайн-гид своего путешествия. Авторы медиа We Shall Burn Bright разработали карту перемещений от начальной точки в Киеве до конечной в Карпатах. Читатели проходят маршрут по шагам и читают заметки автора.
Создание интерактивных карт как в примерах выше требует большое количество данных и время для изучения инструментов, с помощью которых они разрабатываются. Можно ускорить решение задачи с помощью бесплатных сервисов.
Инструмент для визуализации данных DataWrapper
Datawrapper — простой инструмент визуализации данных, который позволяет создавать диаграммы, графики, интерактивные карты. Сервис помогает пользователям быстрее освоиться в интерфейсе с помощью полезных материалов блога, академии, кейсов и тренировочных заданий.
Какие карты можно сделать в DataWrapper
В сервисе можно сделать 3 вида карт:
- Картограмма (Choropleth map). Подходит для закрашивания регионов по определённым параметрам. Можно показать качество мобильной связи или сравнить привлекательность городов для туристов.
- Символьная карта (Symbol map). Данные можно зашифровать цветом и размером символов. Оптимальный вариант для сравнения регионов по нескольким показателям. Например, можно показать, рейсы каких авиакомпаний прилетают в город. Цвет будет соответствовать авиакомпании, а размер — числу рейсов.
- Карта локатора (Locator Map). Карта подойдёт для отображения геолокации достопримечательности.
Как сделать интерактивную карту в DataWrapper
Процесс создания карты в DataWrapper состоит из нескольких шагов:
- Нажимаем Create new, выбираем «New Map».
- Выбираем тип карты. Континент, страна, город, округ или район.
- Загружаем данные. DataWrapper поддерживает импорт из CSV, Excel и Google Sheet. Можно сопоставить свои данные с картой по ISO-кодам стран.
- Оформляем карту. Выбираем цвета, настраиваем легенду, добавляем заголовок карты, задаём дополнительные параметры: масштабирование, выравнивание, высоту. В настройках можно выбрать язык, отключить логотип сервиса на платном тарифе и добавить кнопки шеринга.
- Экспортируем карту. Если интерактивных элементов нет, можно сохранить её как изображение. Интерактивные карты можно встроить на свой ресурс с помощью HTML-кода.
Инструмент для визуализации данных Flourish
Flourish сложнее, чем DataWrapper, но позволяет создавать более сложные карты, гибко настраивать внешний вид визуализаций и оживлять их с помощью анимаций. У сервиса большая библиотека шаблонов, много готовых примеров и блог с кейсами.
Какие карты можно сделать в Flourish
В Flourish можно создать разные виды карт:
- Картограммы (Projection map).
- Карту локатора (Locator Map).
- 3D-карты (3D map) для отображения точек с дополнительной информацией.
- Карту дуг (Arc map) для визуализации направлений и перемещений.
- Маркерную карту или карту-указатель (Marker map). Отлично подходит для создания гида по региону или городу.
Как сделать интерактивную карту в Flourish
Процесс создания карты в Flourish состоит из нескольких шагов:
- Выбираем шаблон внешнего вида карты.
- Загружаем данные во вкладку Data. Число доступных вкладок зависит от выбранного типа карты: данные, локации, связи. Благодаря встроенному шаблону остаётся только загрузить и распределить данные. Импортировать информацию можно из CSV, Excel, JSON и других форматов.
- Настраиваем внешний вид карты. Во вкладке Preview можно изменить формат отображения: размер символов, иконок, всплывающих окон с информацией и другие параметры.
- Экспортируем карту. Нажимаем Export & Publish в правом верхнем углу и выбираем формат экспорта: картинка, код вставки или HTML-страница для премиум-тарифа.
Рекомендации по визуализации данных на интерактивных картах
Читателям будет удобно взаимодействовать с интерактивной картой, если она качественно сделана, корректно отображается на разных устройствах и её легко понять с помощью легенды.
Советы по визуализации данных:
- Выбирайте оптимальный формат карты. Опирайтесь на свои цели и данные, которые будут использоваться для визуализации. Например, для карт дуг нужно много информации, чтобы визуализировать перемещения.
- Не переусердствуйте с дизайном. Лучше выбрать минималистичный формат и сфокусировать внимание пользователей на данных.
- Оставьте минимум элементов. Уберите всю информацию, которая не влияет на информативность визуализации. Карты с большим количеством информации лучше разбить на несколько для удобного взаимодействия.
- Добавьте название и подписи. Без легенды не все читатели смогут понять, что именно хотел сказать автор.
- Придерживайтесь классической схемы цветовых ассоциаций. Положительные свойства ассоциируются с зелёным, а отрицательные — с красным.
- Используйте единую цветовую гамму. Если на каждом участке будет свой набор цветов, карта перестанет быть целостной.
Интерактивные карты повышают информационную ценность контекста и улучшают поведенческие факторы. Если грамотно интегрировать визуализацию в текст, читатели проведут больше времени на странице и решат свою задачу.
Время на прочтение
7 мин
Количество просмотров 20K
Распространённая задача программистов в работе с геопространственными данными — отобразить маршруты между различными точками. Решением, которое может понадобиться в разработке веб-сайта, делимся к старту курса по Fullstack-разработке на Python.
Вы освоите:
-
Геокодирование местоположения.
-
Нахождение маршрутов между двумя точками.
Установка OSMnx
OSMnx — это пакет Python для загрузки геопространственных данных OpenStreetMap, моделирования, проектирования, визуализации и анализа реальных уличных сетей и другой геометрии геопространства.
Установка OSMnx немного хитрая: до обычных pip/conda install нужно выполнить следующие шаги:
$ conda config --prepend channels conda-forge
$ conda install osmnx
Если pip/conda install не работает, выполните pip install osmnx
.
Вы получите готовый к работе OSMnx.
Нахождение самого быстрого маршрута
Теперь, чтобы найти самый короткий маршрут между двумя точками, можно воспользоваться пакетом NetworkX вместе с OSMnx. NetworkX — пакет Python для создания, манипулирования, а также изучения структуры, динамики и функций сложных сетей.
Следующий фрагмент кода находит самый быстрый путь между двумя точками в Сан-Франциско:
import osmnx as ox
import networkx as nx
ox.config(log_console=True, use_cache=True)
# define the start and end locations in latlng
start_latlng = (37.78497,-122.43327)
end_latlng = (37.78071,-122.41445)
# location where you want to find your route
place = 'San Francisco, California, United States'
# find shortest route based on the mode of travel
mode = 'walk' # 'drive', 'bike', 'walk'
# find shortest path based on distance or time
optimizer = 'time' # 'length','time'
# create graph from OSM within the boundaries of some
# geocodable place(s)
graph = ox.graph_from_place(place, network_type = mode)
# find the nearest node to the start location
orig_node = ox.get_nearest_node(graph, start_latlng)
# find the nearest node to the end location
dest_node = ox.get_nearest_node(graph, end_latlng)
# find the shortest path
shortest_route = nx.shortest_path(graph, orig_node,dest_node,
weight=optimizer)
Метод нахождения кратчайшего пути по умолчанию — алгоритм Дейкстры, строка dijkstra. Изменить его на bellman-ford можно, изменив параметр method в shortest_path(). Сейчас переменная shortest_route сейчас содержит коллекцию пути, позволяющую за кратчайшее время пешком пройти из одной точки в другую:
[5287124093,
65314192,
258759765,
65314189,
5429032435,
65303568,
65292734,
65303566,
2220968863,
4014319583,
65303561,
65303560,
4759501665,
65303559,
258758548,
4759501667,
65303556,
65303554,
65281835,
65303553,
65303552,
65314163,
65334128,
65317951,
65333826,
65362158,
65362154,
5429620634,
65308268,
4064226224,
7240837048,
65352325,
7240837026,
7240837027]
Отрисовка путей
Очевидно, список путей нам не очень поможет. Более осмысленный способ интерпретации результата — отрисовка путей с помощью функции plot_route_folium():
shortest_route_map = ox.plot_route_folium(graph, shortest_route)
shortest_route_map
Эта функция возвращает карту folium (folium.folium.Map). В Jupyter Notebook она выглядит так:
Набор тайлов по умолчанию — cartodbpositron. Если нужно изменить его, установите аргумент tiles в соответствующее значение. Следующий фрагмент кода покажет карту с набором тайлов openstreetmap:
shortest_route_map = ox.plot_route_folium(graph, shortest_route,
tiles='openstreetmap')
shortest_route_map
Ниже отображён набор openstreetmap:
Если нужно позволить пользователям выбирать предпочтения во время выполнения, воспользуйтесь этим фрагментом кода:
import folium
folium.TileLayer('openstreetmap').add_to(shortest_route_map)
folium.TileLayer('Stamen Terrain').add_to(shortest_route_map)
folium.TileLayer('Stamen Toner').add_to(shortest_route_map)
folium.TileLayer('Stamen Water Color').add_to(shortest_route_map)
folium.TileLayer('cartodbpositron').add_to(shortest_route_map)
folium.TileLayer('cartodbdark_matter').add_to(shortest_route_map)
folium.LayerControl().add_to(shortest_route_map)
shortest_route_map
Теперь пользователь может выбирать набор тайлов:
Изменения типа перемещения и оптимизатор
Помимо поиска кратчайшего пути пешехода можно найти кратчайший путь для водителя:
# find shortest route based on the mode of travel
mode = 'drive' # 'drive', 'bike', 'walk'
# find shortest path based on distance or time
optimizer = 'time' # 'length','time'
Вот он:
А что с велосипедом?
# find shortest route based on the mode of travel
mode = 'bike' # 'drive', 'bike', 'walk'
# find shortest path based on distance or time
optimizer = 'time' # 'length','time'
Вот самый быстрый путь на велосипеде:
Можно найти не только самый быстрый путь, но и самый короткий:
# find shortest route based on the mode of travel
mode = 'bike' # 'drive', 'bike', 'walk'
# find shortest path based on distance or time
optimizer = 'time' # 'length','time'
Вот соответствующий код для велосипедов:
Другие варианты комбинирования оставляю вам.
Геокодирование местоположения
В поиске маршрута не очень удобно определять широту и долготу, если только их уже нет в вашем наборе данных. Проще может быть другой подход: дать расположениям удобные названия. Сделать это можно с помощью геокодирования, используя модуль geopy.
Геокодирование — это преобразование адреса в координаты этого адреса. Обратное геокодирование — это преобразование пары координат в удобный адрес.
Чтобы установить geopy, выполните в терминале эту команду:
$ pip install geopy
Следующий фрагмент кода создаёт экземпляр класса геокодера Nominatim для данных OpenStreetMap. В коде вызывается метод geocode(), чтобы закодировать расположение Golden Gate Bridge. При помощи геокодирования можно извлечь широту и долготу расположения:
from geopy.geocoders import Nominatim
locator = Nominatim(user_agent = "myapp")
location = locator.geocode("Golden Gate Bridge")
print(location.latitude, location.longitude)
# 37.8303213 -122.4797496
print(location.point)
# 37 49m 49.1567s N, 122 28m 47.0986s W
print(type(location.point))
# <class 'geopy.point.Point'>
Проверить результат можно здесь. В поисковую строку введите широту и долготу:
Изменим оригинальный код, чтобы геокодировать начальную и конечную точки:
import osmnx as ox
import networkx as nx
from geopy.geocoders import Nominatim
ox.config(log_console=True, use_cache=True)
locator = Nominatim(user_agent = "myapp")
# define the start and end locations in latlng
# start_latlng = (37.78497,-122.43327)
# end_latlng = (37.78071,-122.41445)
start_location = "Hilton San Francisco Union Square"
end_location = "Golden Gateway Tennis & Swim Club"
# stores the start and end points as geopy.point.Point objects
start_latlng = locator.geocode(start_location).point
end_latlng = locator.geocode(end_location).point
# location where you want to find your route
place = 'San Francisco, California, United States'
# find shortest route based on the mode of travel
mode = 'bike' # 'drive', 'bike', 'walk'
# find shortest path based on distance or time
optimizer = 'length' # 'length','time'
# create graph from OSM within the boundaries of some
# geocodable place(s)
graph = ox.graph_from_place(place, network_type = mode)
# find the nearest node to the start location
orig_node = ox.get_nearest_node(graph, start_latlng)
# find the nearest node to the end location
dest_node = ox.get_nearest_node(graph, end_latlng)
...
Заметьте, что функция get_nearest_node() принимает и кортеж широта — долгота, и объект geopy.point.Point. Вот самая короткая дистанция на велосипеде от отеля Hilton и до Golden Gateway Tennis & Swim Club в Сан-Франциско:
Отображение маркеров начальной и конечной точек
Карта станет понятнее, если отображать маркеры, указывающие начальную и конечную точки маршрутов. Чтобы отобразить маркер со всплывающим окном, можно воспользоваться классом Marker, о котором я рассказывал в предыдущей статье. Код ниже отображает два маркера: зелёный означает начальную точку, красный — конечную:
import folium
# Marker class only accepts coordinates in tuple form
start_latlng = (start_latlng[0],start_latlng[1])
end_latlng = (end_latlng[0],end_latlng[1])
start_marker = folium.Marker(
location = start_latlng,
popup = start_location,
icon = folium.Icon(color='green'))
end_marker = folium.Marker(
location = end_latlng,
popup = end_location,
icon = folium.Icon(color='red'))
# add the circle marker to the map
start_marker.add_to(shortest_route_map)
end_marker.add_to(shortest_route_map)
shortest_route_map
Класс Marker принимает координаты только в форме кортежа. А значит, чтобы кортеж содержал широту и долготу, нужно изменить start_lating и end_lating. Вот два маркера, показывающих начало и конец пути:
Отрисовка статичного графа
Ранее мы воспользовались plot_route_folium(), чтобы показать кратчайший путь на карте folium:
shortest_route_map = ox.plot_route_folium(graph, shortest_route)
shortest_route_map
Есть ещё одна интересная функция — plot_graph_route(), которая вместо вывода интерактивной карты чертит статический граф. Это полезно, когда вам нужно изображение с маршрутом между двумя точками. Следующий код выводит статичный граф для точек из предыдущего раздела статьи:
import osmnx as ox
import networkx as nx
ox.config(log_console=True, use_cache=True)
graph = ox.graph_from_place(place, network_type = mode)
orig_node = ox.get_nearest_node(graph, start_latlng)
dest_node = ox.get_nearest_node(graph, end_latlng)
shortest_route = nx.shortest_path(graph, orig_node, dest_node,
weight=optimizer)
fig, ax = ox.plot_graph_route(graph, shortest_route, save=True)
Вы увидите такой вывод:
Резюме
Надеюсь, эта статья вдохновит вас и вы используете её, чтобы создавать маршруты по достопримечательностям. Возможно, вам захочется позволить пользователям вводить их текущие местоположения и прокладывать маршруты до места назначения.
Ссылки
[1] Boeing, G. 2017. OSMnx: New Methods for Acquiring, Constructing, Analyzing, and Visualizing Complex Street Networks. Computers, Environment and Urban Systems 65, 126–139. doi:10.1016/j.compenvurbsys.2017.05.004
А мы поможем вам освоить надёжную профессию в IT с самого начала или развить ваши навыки:
-
Профессия Fullstack-разработчик на Python
-
Профессия Data Scientist
Выбрать другую востребованную профессию.
Данная статья посвящена разработке электронных карт. Выявлены особенности растровых и векторных электронных карт. На основе проведенного исследования предлагается выделить основные проблемы электронных карт и решения этих проблем.
Ключевые слова: электронная карта, растровая и векторная карта, цифровое картографирование
В современном мире используются различные виды картографической продукции в виде электронных и цифровых карт. Непрерывный и быстрый рост карт объясняется тем, что они необходимы в разных сферах: при оперативном управлении промышленностью, транспортом и сельским хозяйством, анализе социальных процессов, планировании использования материальных и природных ресурсов, поиске полезных ископаемых и т. д. В каждой области деятельности электронные карты выполняют свою функцию.
В народнохозяйственных системах электронные карты должны обеспечивать оперативное управление народнохозяйственным комплексом в целом по отраслям, планирование использования материальных и природных ресурсов, анализ социальных процессов, моделирование управления ресурсами, создание и ведение кадастров.
В автоматических системах управления электронные карты должны предоставлять в реальном времени оценку обстановки и принимать решение, ставить задачи и организовывать взаимодействие, изучать географические особенности регионов, территорий, а также выполнять необходимые расчеты при оценке обстановки, моделировании действий, прогнозировании изменений местности, определении координат объектов на местности.
В автоматических системах навигации электронные карты должны обеспечивать наземную, воздушную и космическую навигацию [1].
Электронная карта — эта цифровая картографическая модель; визуализированная или подготовленная к визуализации на экране средства отображения информации в специальной системе условных знаков, содержание которой соответствует содержанию карты определенного вида и масштаба. Электронная карта бывает векторная или растровая.
Растровая карта представляет собой цифровое изображение, получаемое путем сканирования обычной бумажной карты. Растровая карта имеет две особенности.
Первая особенность заключается в том, что, как правило, получаемый после сканирования карта имеет очень большой объем.
Вторая особенность заключается в том, что программное обеспечение практически нечего, кроме отображения, делать с растровой картой не умеет. По растровой карте компьютер не может выполнять такие расчеты как: определение оптимального маршрута движения, расчет профиля земной поверхности и т. д. Более того, ввиду больших объемов, отображение растровых карт на маломощных компьютерах происходит достаточно медленно.
Перечисленные особенности, являющиеся недостатками растровых карт, существенно ограничивают их применение, однако, в некоторых случаях, их использование бывает оправдано, ввиду низких затрат на их производство.
Векторная карта по своему внутреннему содержимому не имеет ничего общего с растровой картой. Она представляет собой базу данных, в которой хранится информация об объектах карты. Эта информация состоит их двух видов: геометрическое и атрибутивное описание объектов. Атрибутивное описание включает в себя такие, например, данные, как высота дерева, ширина дороги, скорость течения реки, название населенного пункта и т. д. Геометрическое описание определяет контура объектов, представляя их, как правило, ломаными прямыми, которые с допустимой погрешностью аппроксимируют исходные кривые контура.
Основной проблемой векторных карт является существенные затраты на производство. Однако неоспоримое преимущество векторных карт — это возможность автоматической обработки ее компьютером, объясняет все большее и большее их распространение во всевозможных компьютерных приложениях, в том числе и для навигационных целей в авиации [2].
Процесс создания электронных карт сложная и трудоемкая процедура, она включает следующие основные этапы:
1) автоматизированное преобразование исходной картографической информации в цифровую форму;
2) символизация цифровой картографической информации и автоматизированное составление электронных карт;
3) разработка пользовательской системы управления базами данных для работы с электронными картами.
На первом этапе решается задача получения на основе имеющихся исходных картографических материалов (аэрокосмических снимков, расчлененных оригиналов и цветных тиражных оттисков карт) векторной цифровой модели карты — основы электронной карты.
Эта задача решается следующими основными методами:
1) методом цифрования исходных картографических материалов на планшете путем отслеживания контуров объектов, подготовки и ввода семантики, структуризации цифровой информации;
2) методом сканирования исходных картографических материалов с последующей автоматической или интерактивной векторизацией и распознаванием растрового изображения на экране дисплея, ввода требуемой семантики и структуризации цифровой информации.
На втором этапе решаются задачи:
‒ символизации векторной модели;
‒ составления электронной карты по уровням нагрузки;
‒ контроля и редактирования символизированных электронных карт;
‒ получения архивной графической символизированной копии электронной карты.
Сущность процесса символизации состоит в присвоении каждому объекту кода соответствующего условного знака из библиотеки условных знаков по классификационному коду, характеристикам объектов и их значений.
В процессе составления электронных карт по уровням нагрузки осуществляется программный и визуальный контроль и редактирование информации, которое, в основном, сводится к размещению подписей объектов. Процесс создания электронных карт завершается получением символизированной графической копии последовательно для каждого уровня нагрузки, начиная с первого.
Формирование электронных карт осуществляется в универсальной структуре данных, обеспечивающей возможность записи векторной информации, как в последовательном, так и в цепочно-узловом представлении, в растровом виде, справочной информации, а также формирование сегментов данных пользователей. Технология реализуется на комплексе автоматизированных рабочих мест, объединенных в локальную вычислительную сеть [2].
Все самые основные качества и преимущества электронных карт проявляются при их использовании.
Но при создании карты нужно учитывать ряд проблем. Первая из этих проблем — старение исходных картографических материалов. Финансирование предприятий Роскартографии из государственного бюджета значительно уменьшилось. Как следствие, увеличились сроки обновления карт. Таким образом, создавать электронные карты по имеющимся традиционным методам не имеет смысла по причине старения карт.
Ряд проблем цифрового картографирования связано с используемыми технологиями, техническими средствами, программным и информационным обеспечением [1].
В настоящее время эффективность технологий создания электронных карт практически полностью определяется качеством программного обеспечения. Говоря о программном обеспечении, его необходимо разделить на две категории: импортное и отечественное. Зарубежное программное обеспечение дороже отечественного; часто бывает, что стоимость программных средств, для одного рабочего места превышает стоимость оборудования. Кроме того, локализованные версии программного обеспечения либо отсутствуют, либо появляются с опозданием. Отечественное программное обеспечение характеризуется более приемлемой стоимостью, но его функциональные возможности отстают от ожиданий и потребностей производства.
Самая большая проблема в цифровом картографировании,- это отсутствие национальных стандартов на классификацию и кодирование топографической информации, и форматы обмена цифровыми топографическими данными. На некоторые масштабы имеется несколько классификаторов, и перевод данных из одного классификатора в другой сопровождается потерей информации. И если организации Роскартографии обмениваются между собой классификаторами, то перед другими, в особенности небольшими, фирмами открываются широкие горизонты для творчества. Определенное количество этих фирм занимается цифровым картографированием незаконно, не имея необходимых лицензий и квалифицированных специалистов.
Для того чтобы ограничить изготовление и распространение цифровых топографических планов и электронных карт сомнительного свойства, нужно ввести в практику обязательность получения сертификата качества на цифровую топографическую продукцию всеми организациями-изготовителями.
Электронные цифровые карты по различной тематике составляются широким потоком и заменяют карты, созданные на бумаге. Накапливается опыт создания карт, совершенствуются методические приемы их составления. Интенсивно развиваются новые версии программных пакетов, используемых для создания электронных карт.
Литература:
- Буров Н. И. Электронная навигация и картография. Издательство ОГМА. 1996. 26 с.
- Ватущенко Л.Л, Лдипевич В. А., Кошевой А. А. Электронные системы отображения навигационных карт. Издательство ОГМА. 2000. 120 с.
Основные термины (генерируются автоматически): электронная карта, растровая карта, программное обеспечение, цифровое картографирование, уровень нагрузки, атрибутивное описание, баз данных, векторная карта, оперативное управление, цифровая информация.