Контурные карты в веб-браузере

  1. Глобальные данные по высоте
  2. Рисование контурных линий
  3. Стилизованные карты из контуров

Некоторое время назад мы получили запрос на создание инструмента для рисования простой топографической контурной карты любого места в мире и экспорта файла SVG с линиями

Некоторое время назад мы получили запрос на создание инструмента для рисования простой топографической контурной карты любого места в мире и экспорта файла SVG с линиями. Существуют хорошие глобальные карты местности с контурными линиями - например, в Картах Google они есть, как и многие стили Mapbox, - но интерес был в извлечении только контурных линий для внешнего использования. Хотя запрос превратился во что-то другое, мы все еще были заинтригованы этой идеей.

«Звучит слишком сложно», - подумал я сначала. Знаки вопроса были:

  1. Как мы можем загрузить хорошие данные по высоте в любой точке мира? Я знаю, как найти хорошие ЦМР, но не по запросу в веб-приложении, и знаю только хорошие данные в США.
  2. Как, черт возьми, вы рисуете контурные линии? Для меня это всегда была операция ГИС на рабочем столе или в командной строке.

Оказывается, я был неправ; ни то, ни другое ужасно сложно. Так что я построил вещь , Это больше доказательство концепции, чем что-либо еще, это инструмент, который позволяет вам рисовать контурную карту практически в любом месте, стилизовать ее до определенной степени и экспортировать в несколько форматов - возможно, наиболее полезно, GeoJSON для использования в дальнейшем картографировании или работе с ГИС. , Здесь действительно нет причудливых технологий. Это все JavaScript, с использованием Leaflet и D3.

Вы можете сделать несколько вещей здесь:

  • Найдите место, которое вы хотите нанести на карту
  • Выберите интервал линии контура (в метрах или футах) и более толстый интервал линии индекса (если есть)
  • Укажите цвет линии и вес
  • Используйте сплошной цвет или гипсометрические оттенки в качестве фоновой заливки
  • Цвет возвышений над уровнем моря с различными батиметрическими цветами
  • Нарисуйте карты в виде основных контурных линий или со стилизованным рельефным, освещенным видом
  • Экспорт в GeoJSON, PNG или SVG

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

Глобальные данные по высоте

Первая большая задача - найти глобальные данные о высоте и загрузить их в браузер без особых хлопот. У нас есть хороший архив SRTM данных и кратко подумал о написании серверных функций для его доставки, но, по-моему, я размышлял над гораздо более простым маршрутом, несмотря на то, что использовал его в прошлом: Mapzen (RIP) плитки местности ,

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

Тип, который мы используем, выглядит примерно так:

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

К счастью, несмотря на кончину Мапзена, их работа над плитками местности продолжается, так как весь набор доступны через Nextzen или Amazon S3 , Mapbox (еще жив) также предлагает плитки местности , Хотя качество данных варьируется от места к месту, эти наборы данных представляют собой работу некоторых преданных людей, чтобы собрать воедино лучшие данные, которые они могут для большей части мира - гораздо лучше, чем пытаться сделать это самостоятельно!

Рисование контурных линий

Отлично, у нас есть данные по высоте. Теперь нам просто нужно нарисовать контуры.

Я не знаю, как это сделать. Я не претендую на то, чтобы знать, как это сделать. Я понимаю основной рисованный метод , но мой реальный метод заключается в том, чтобы спросить GDAL сделать это.

Введите, что не удивительно, Майк Босток и довольно новый d3-контур Библиотека JavaScript. Все, что вам нужно сделать, это дать ему массив значений данных и набор пороговых значений (т. Е. Значений, вокруг которых вы хотите нарисовать линии, в данном случае заданных опциями пользователя), и он выполнит несколько магических заклинаний и даст вам контурные полигоны. Это полезно не только для географического отображения, но и для других типов диаграмм, как вы можете видеть в документации.

d3-contour возвращает контуры как GeoJSON, что очень удобно, потому что D3 также хорош в потребляя GeoJSON и выплевывая нарисованные формы для холста. Контуры и видимая карта основаны на координатах экрана, а не на географических координатах, но D3 не волнует. Чтобы экспортировать как пригодный для использования файл GeoJSON, мы можем использовать методы преобразования Leaflet, чтобы вернуться к географическим координатам.

Напомним, что всякий раз, когда карта перемещается и перерисовывается, она делает следующее:

  1. Загрузить плитки местности
  2. Нарисуйте плитки на невидимом холсте и расшифруйте их до значений высоты
  3. Получить пороговые значения контурной линии на основе пользовательских параметров и текущего диапазона значений высот
  4. Получите контурные полигоны с d3-контуром
  5. Рисование контуров на холсте с указанными параметрами стиля

Когда параметры стиля меняются, нужно только перерисовать холст. Если интервал между линиями изменяется, ему необходимо пересчитать контуры, но не нужно перезагружать данные высот. Если карта движется, она должна сделать все.

Стилизованные карты из контуров

Стилизованные карты из контуров

Этот маленький инструмент содержит один слегка причудливый стиль - подсвеченные контуры. Это по сути Контуры в стиле танака где каждая линия контура кажется поднятой над предыдущей и подсвеченной в одном направлении. Они выглядят как трехмерные, как слои дерева, вырезанные и сложенные. (Талантливые люди создали множество реальных физических карт такого типа.) Вы можете создавать их с помощью таких вещей, как ArcGIS или же QGIS где методы могут быть умнее и учитывать аспект каждого отрезка, но здесь это просто трюк с тенями. До сих пор я не знал, что стандартные методы рендеринга холста включают падающие тени ! Есть легкий штрих вокруг всего многоугольника, но с одной стороны он скрыт тенью на заливке.

Есть легкий штрих вокруг всего многоугольника, но с одной стороны он скрыт тенью на заливке

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

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

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

Наконец, всегда есть триповая анимация. Этот действительно показывает фактические контурные линии, но это не совсем обычная карта. Делать полезные вещи - это здорово, конечно. Но делать дурацкие красивые вещи веселее!

Но делать дурацкие красивые вещи веселее

Похожие

Карты развертывания DNSSEC
... карты дают представление о глобальном развертывании DNSSEC и разбивают статус развертывания доменов верхнего уровня (TLD) на следующие пять категорий: Экспериментальный - Внутренние эксперименты объявлены или наблюдаются Объявлено - Общественное обязательство по развертыванию Частично - зона подписана, но не работает (без DS в корне) DS в Root - Zone подписана, а ее DS опубликован
Планирование маршрута в горах с использованием ТУРИСТИЧЕСКОЙ КАРТЫ
... из туристического ассортимента: www.spokey.pl/pl/outdoor/ Что ты должен сделать? Просто купите продукты Spokey из упомянутой линейки Outdoor, как минимум 89 злотых и подать заявку, используя форму. Стоимость подписки составляет около 25 злотых, поэтому при покупке оборудования у нас есть дополнительное преимущество в стоимости значительной части совершенных покупок. Интересное предложение! Вам интересно, что выбрать
Как скачать локальные карты для автономного использования в Windows 10
Иногда вы просто не можете подключиться к Интернету. Может быть, вам не повезло оказаться в самолете без Wi-Fi или просто проехать через часть Соединенных Штатов, где подключение происходит не так часто, как на следующей заправке. Иногда отсутствие подключения не имеет большого значения, но в других случаях это может быть проблемой, особенно если вам нужна карта. Конечно, вы можете получить офлайн-карты на своем телефоне или пойти в школу с бумажной версией, но гораздо удобнее просматривать
HTTPS обеспечивает вам безопасность?
HTTPS (Hypertext Transfer Protocol Secure) является зашифрованной версией протокола HTTP (Hypertext Transfer Protocol). Что такое http: // и о чем все знают. Целью этого вызова является отправка запроса клиента (браузера пользователя) на веб-сервер, который затем отвечает на эти запросы. Благодаря этому серфинг в Интернете удобен для пользователя. Связь по линии клиент-сервер осуществляется по умолчанию по протоколу
Как оплатить с помощью платежной карты через интернет? Осторожно, но без страха
Текст является частью Промо-акция WiFi HiFi Week , Интернет-магазины становятся все более популярными в Польше. Рынок электронной коммерции быстро растет, в основном благодаря огромному выбору товаров, более низким ценам и благоприятному законодательству для потребителей. Тем
Как мне создать карту сайта для моего сайта?
... карты сайта называется картой сайта XML. Создание карты сайта XML Каждый веб-мастер может легко и быстро создать карту сайта XML для своего сайта. Бесплатный генератор карт сайта XML-Sitemaps.com может помочь.
HTML
... изайну, а поскольку я имел обыкновение читать все что вижу, то я ее прочитал. И с тех пор считал, что знаю HTML. Но недавно, мне сказали адрес одного хорошего сайта www.w3schools.com . Символы "w3" в названии сайта означают "три w", или "www". Что важного я там узнал? Во-первых, что мои знания несколько устаревшие. Во-вторых, что то, что мои теги распознает браузер, еще не значит, что так будет продолжаться и дальше. Поэтому я решил написать
Бронируйте дешевые рейсы на Skyscanner - Дешевые рейсы и Дешевые рейсы
Ваши данные Твой выбор. Мы собираем информацию о том, как и когда вы используете наше приложение, чтобы улучшить ваше взаимодействие с нами и показать вам соответствующую рекламу. Используя, вы соглашаетесь с тем, как мы используем вашу информацию. В нашем Политика Cookie Вы можете узнать больше и настройте свои настройки , близко
Синхронизация данных: облачное хранилище в тесте
Данные, хранящиеся в облачных сервисах, легко доступны для совместного использования и всегда доступны на всех ваших устройствах. Тем не менее, между Google Drive, OneDrive, iCloud и co существуют заметные различия в функциональности и ценах. Точное сравнение отдельных услуг уместно.  Облачный провайдер в сравнении. (Источник: netzwelt) Падающие цены на носители для передачи и хранения
Как легко восстановить данные с iPhone 7 Plus
Возможность восстановления данных - это не то, что предлагает iTunes, и, к сожалению, это может привести к тому, что пользователи iOS потеряют данные, которые они по ошибке удалили или потеряли данные из-за ошибки iOS. Вот некоторые из причин потери данных или доступа к данным на вашем устройстве: Человеческая ошибка, самая распространенная из причин. Забыв пароль доступа к экрану блокировки, который, в свою очередь, приводит к необходимости заводского
Более 100 онлайн-платформ для продажи ваших вещей за деньги
... карты: Вы когда-нибудь получали подарочную карту для магазина, в котором вы не ходите по магазинам или который находится не возле вашего дома? Тогда продайте эти ненужные подарочные карты онлайн. Введите уникальный номер штрих-кода карты, получите ценовое предложение, отправьте их и получите оплату через чек, PayPal или прямой депозит. Знания и опыт: Вы хотите зарабатывать деньги из дома, но не знаете, что делать? Тогда рассмотрите

Комментарии

Должны ли поставщики электронных услуг шифровать данные?
Должны ли поставщики электронных услуг шифровать данные? В зависимости от типа электронных услуг и отраслевых норм, регулирующих аспекты защиты данных, степень их защиты варьируется. Однако все поставщики услуг обязаны соблюдать положения Закона от 18 июля 2002 года о предоставлении электронных услуг (Законодательный вестник 2002 года, № 144, пункт 1204 с внесенными в него поправками), именуемого в дальнейшем «пожизненный». Согласно ст. 20 п. 1 балл 2. Поставщик услуг,
Безопасны ли данные в облаке?
Безопасны ли данные в облаке? Тестовое поле с первого взгляда Что такое облачное хранилище? В случае с онлайн-хранилищем, которое мы тестировали, такие веб-компании, как Apple. Google или Microsoft хранилища на своих серверах для конечных пользователей использовать готово. Эти оперативные жесткие диски могут хранить любые данные, а также извлекать и выравнивать данные на разных устройствах. Это позволяет постоянно синхронизировать
Что такое регистрация карты в сервисе?
Что такое регистрация карты в сервисе? Система сертифицирована платежными организациями Visa International и MasterCard International. преимущества: Дополнительная безопасность для карточных транзакций в интернете В случае утери карты это является

Как, черт возьми, вы рисуете контурные линии?
Pl/pl/outdoor/ Что ты должен сделать?
Что важного я там узнал?
Карты: Вы когда-нибудь получали подарочную карту для магазина, в котором вы не ходите по магазинам или который находится не возле вашего дома?
Знания и опыт: Вы хотите зарабатывать деньги из дома, но не знаете, что делать?
Должны ли поставщики электронных услуг шифровать данные?
Безопасны ли данные в облаке?
Тестовое поле с первого взгляда Что такое облачное хранилище?
Что такое регистрация карты в сервисе?