Openstreetmap не отображает карту в браузере
Есть карта OSM, она рендерится Mapnik, отображается как WMS через MapProxy (важно: у MapProxy есть поддержка WMTS), затем отображается в ArcMap. В ArcMap эта карта отображается просто как WMS сервис, никакие масштабы не задаются.
1) Подскажите, пожалуйста, если я буду подключать эту карту как WMTS в ArcMap, определятся ли у меня масштабы для просмотра карты автоматически.
2) Можно ли настроить кеширование этой карты, например, через ArcGis Server. Т.е. схема такая в Ubuntu mapnik делает тайлы(тайлы сохраняются на диске - это и есть кеширование). MapProxy раздает карту как WMS.
В ArcMap карта отображается.
Видимо, имеются в виду уровни кэша тайлинговой схемы? Автоматически не определит, можно просто выставить схему масштабов Bing.
По 2-му пункту вообще ничего не понятно. Расскажите алгоритм.
Спасибо, я знаю. Можно, пожалуйста, ссылку, почему-то популярно другое мнение.
Насколько мне известно, преимущество в применении протокола WMTS в сравнении с отображением обычных тайлов проявляется тогда, когда одновременных подключений очень много.
Вопрос в том сколько одновременных подключений должно быть, чтобы преимущество стало заметным: 500, 1000, 5000, 100 000? Все таки я не ММОРПГ разрабатываю.
Можно, пожалуйста, поподробнее. Я использую две стандартные инструкции для скачивания и отображения карты ОСМ. (это означает, что карта ОСМ выкачана и раздается по WMS через MapProxy)Вот это - кусок кода для отображения карты ОСМ на веб сайте, код можно скачать откуда угодно. Когда я в веб браузере просматриваю карту, я вижу, что папки с кешем заполняются. Когда я просматриваю эту карту повторно, то тайлы уже берутся из папки с кешем, а не генерируются из базы данных ОСМ. Вот здесь самое не понятное - это уровни масштаба, для которых строится кеш. Подскажите, пожалуйста, что это за схема.
Теперь, когда кеш для некоторых уровней масштаба частично построен, я просматриваю эту карту в ArcMap (Desktop-ное приложение) по протоколу WMS. Вот проблемы, с которыми я столкнулся:
1) Не могу просмотреть карту ОСМ в системе координат 3857, пишет Code:InvalidCRS. Могу посмотреть только в системе координат 4326. Но, как видно из рисунка,
- внизу есть какая-то черная полоса
- карта сплющенная
2) Необходимо знать по какой схеме задаются масштабы у карты ОСМ . Эти масштабы необходимо задать в ArcMap-е, чтобы
- не было "белой карты" на некоторых масштабах. Смотри рисунок
- карта 100500 раз не рендерилась.
Все эти манипуляции нужны для того, чтобы
- работать с картой в десктопном приложении (веб приложение в данном контексте нафиг не нужно),
- причем карта на весь мир будет весить копейки.
Эти карты можно использовать в любых продуктах КБ Панорама.
Внизу списка указан классификатор RSC, который соответствует этим картам -
Для работы с картой в формате SXF необходим "Цифровой классификатор открытой карты" (osm.zip).
И дана ссылка на классификатор. В версию 11 он уже входит. Для ГИС Карта 2008 его нужно скачать.
Атлас тут вообще не причем. Напишите какой файл открываете я посмотрю. Переоткрывал штук 15 разных карт из OSM и ни одной проблемы не было. Ну а про подробность думаю, что можно на самом OSM предварительно смотреть и принимать решение подходит или не подходит. Все таки многие районы еще не полностью отцифрованы OSM сообществом. Рядом с каждой картой в списке есть кнопка с буквой i. Это ссылка на картинку с картой, чтобы получить представление о том, что Вы увидите на данной карте. Я разобрался в чем было дело, как оказалось после открытия карта уходила далеко в сторону и на экране отображалась пустое место, чтоб ее найти пришлось сначала уменьшить масштаб отображения карты. Но все равно остается вопрос почему координаты на всех картах смещены относительно реальных на значительное расстояние? Насколько? Какие координаты Вы берете за эталон?osm сделан в wgs84, если Вы сравниваете с СК42, то я пока тоже не решил для себя эту проблему В ГИС Карта.
В osm выгрузках в общих данных не стоит тип карты, может быть это что-то значит?
Абсолютно верно, координаты на карте смещены. Например я беру реальную точку с координатами X=6250147 Y=7641075, а на карте мне отображается что это объект с координатами X=7588473 Y=4595317. Т.е. такое чувство что изначально неправильно была наложена рамка на карту.
Такой же эффект будет и в версиях 2005, 2003.
Откройте в версии 11.х и все точно совместится.
В версии 11 введены новые проекции и системы координат для поддержки базы данных EPSG.
Можете воспользоваться ГИС Панорама Мини.
Проверил карту OSM для Вологодской области по Google (открыл карту, включил в качестве фона Google).
Очень точное совмещение контуров. На уровне 2-3 метров в среднем.
Цитата |
---|
Андрей Пугачев пишет: Абсолютно верно, координаты на карте смещены. Например я беру реальную точку с координатами X=6250147 Y=7641075, а на карте мне отображается что это объект с координатами X=7588473 Y=4595317. Т.е. такое чувство что изначально неправильно была наложена рамка на карту. |
Вы дюймы с килограммами сравниваете.
Если одна карта в СК-42 (которая не имеет стандартного датума для перехода к глобальной геодезической системе координат и вообще не должна применяться где-либо), а другая OSM - Цилиндрическая Меркатора на эллипсоиде WGS-84, то как можно сравнивать их координаты?
Сделайте 2 произвольных снимка некоторого предмета с разных точек и расстояний.
И затем измеряйте линейкой его координаты на снимке и удивляйтесь, что они разные.
Одинаковыми должны быть геодезические координаты в одной геодезической системе координат.
Связь плоских прямоугольных координат и геодезических, как правило, на глаз (по значению X и Y) не оценить.
Координаты X и Y даже не измерительные. В том смысле, что разность координат может в десятки раз отличаться от реальных расстояний на местности. Но по этим координатам можно вычислить расстояние с точностью до сантиметров применяя геодезические построения, что автоматически делает ГИС.
Сегодня OpenStreetMap набирает огромную популярность среди веб-картографических проектов. Причинами этого является его некоммерческий стиль, подробная свободная и бесплатная географическая карта мира, а также то, что сервис Google Maps, который до этого времени использовало значительное количество сайтов, стал платным! Также следует заметить, что OpenStreetMap появился задолго до Google Maps.
Данная статья будет дополняться по ходу реализации функционала различных проектов, связанных с OpenStreetMap.
Для полноценной работы карты OpenStreetMap мы будем использовать библиотеку JavaScript Leaflet, которая небольшая, простая и имеет отличную документацию.
В этой статье рассмотрим пример, который показывает, как:
- настроить простую карту с помощью библиотеки Leaflet;
- загрузить местоположение маркера;
- отображать координаты при нажатии на карте, или создавать визуально маркеры.
Нам обязательно потребуется загрузить библиотеки jQuery и Leaflet:
Данные строки включают библиотеки CSS и JavaScript, которые нам нужны для отображения и работы карты. В этом примере мы ссылаемся на эти файлы, хранящиеся на удаленном сервере с использованием CDNJS. Другой вариант - разместить эти файлы самостоятельно, но преимущества использования CDNJS:
1. Облегчает нагрузку на ваш сервер.
2. CDN распространяют контент, чтобы он был ближе к пользователю, что ускоряет загрузку.
4. Если пользователь посетил другой сайт с использованием того же сценария, он автоматически будет сохранен в кэше, что позволит на вашем сайте не загружать его снова и значительно ускорит отображение страницы.
После загрузки скриптов и стилей необходимо включить в файл идентификатор карты:
Мы создаем Div под названием map с высотой и шириной, который будет заполнен нашей картой, когда мы создадим ее в нашем JavaScript. Если мы не укажем ширину, карта будет динамически регулировать ширину для страницы.
Последняя часть этого файла является ключом. Здесь мы загружаем JavaScript, который выполняет настройку и отображение нашей карты.
Строка:
создаст новую карту, назначит ее идентификатор - map и установит некоторые параметры. В этом случае мы центрируем начальный вид, заданным координатами широты и долготы. Также мы устанавливаем уровень масштабирования 12. Здесь есть много других опций, которые вы можете настроить.
Этот код добавляет слой на карту, сообщая ей, какой набор слоев отображать и где их получить. Есть несколько разных серверов, которые вы можете использовать - или вы можете разместить свой собственный.
Опять же, у Leaflet есть много опций, которые можно использовать при создании tileLayer. В нашем примере первым аргументом является шаблон URL, поэтому Leaflet знает, как правильно получать слои с серверов. Далее идет атрибуция - это то, что отображается в правом нижнем углу карты. Важно, чтобы вы добавили правильную информацию для правильной атрибуции набора слоев.
Наконец, у нас есть список поддоменов. Этот массив строк подставляется в часть шаблона URL. Обратите внимание, что этот список зависит от серверов слоев, которые вы используете. Эта опция позволяет браузеру загружать файлы с нескольких серверов одновременно, что приводит к более быстрой загрузке страницы и более быстрым обновлениям, когда пользователь перетаскивает карту.
Хорошо, теперь у нас есть интерактивная карта, которую мы можем перетаскивать, увеличивать и уменьшать. Следующее, что необходимо сделать, это добавить маркеры.
В данном варианте координаты размещены непосредственно в коде скрипта. Но настоятельно рекомендуется сохранять в отдельном файле, чтобы их можно было легко заменить или обновить без изменения основного файла.
Маркеры Leaflet предлагают много вариантов для настройки. В нашем примере мы создаем маркер в определенном месте, привязываем к нему простое всплывающее окно и добавляем его на нашу карту. В данной строке указывается широта и долгота, а также данные, отображаемые во всплывающем окне.
Основная задача карты выполнена, мы показали маркеры и выведи необходимую информацию. Но как добавлять координаты для маркера? Вот рабочий пример:
И html код:
Теперь, при нажатии на карте, будет выводится ширина и долгота. Немного доработав скрипт, можно отправлять данные с помощью библиотеки jQuery.
На волне новостей от Google Том Чедвин напомнил о преимуществах открытого софта и закончил заметку словами: «теперь у вас есть железный аргумент для тех, кто спрашивает, почему бы просто не взять Google Maps».
А у меня титановый аргумент в пользу условных Google Maps: потому что у вашей открытой карты нет будущего, вот почему. На ней даже POI нет нормальных, не то, что у гугля, которому все эти точки несут владельцы добровольно. Потому что там не сотня хмурых амбалов, отворачивающих всех, кто несёт данные, а коврик постелен с «добро пожаловать».
Разумеется, это преувеличение. У нас замечательная, красивая карта, которой во многих областях нет не то, что равных, — нет альтернатив. Ниоткуда вы больше не возьмёте в меру корректный граф дорог. Ни по одной другой карте не прикинете плотность населения. Никто не даст вам данные, чтобы установить копию сервиса в закрытой сети.
Но нельзя не заметить, что OpenStreetMap загибается. Не потому, что у нас база данных вместо карты, или модераторов нет, или данные не разделены на слои, как придирался Серж. Для технически подкованного человека поверить в упадок OSM невозможно: это же децентрализованные данные, они по определению вечны. Кроме того, они бесплатны и наполняются миллионом редакторов по всему миру: почему их не использует каждый первый сайт?
Над картой нет контроля. Хотите импортировать сеть своих магазинов? Фигушки, ваше качество данных не отвечает нашим критериям. Хотите порисовать свой посёлок? Познакомьтесь с местным вахтёром, который сначала поругает вас за выбор классов дорог, а затем пропадёт, потому что вы невыносимы. А вахтёрам, кстати, тоже несладко: четырнадцатый год проекту, а лучшее, что мы смогли сделать для контроля качества, — OSMCha. Пользователи которого до сих пор стонут от диаметров больших, но худых пакетов правок. Автора OWL мы успешно потеряли. Члены DWG до сих пор для работы пользуются скриптами на Perl из прошлого десятилетия.
Над сайтом нет контроля. Это прочувствовал каждый, кто делал пул-реквесты в любой элемент нашей основной инфраструктуры. Никогда вы не услышите спасибо, зато комментариев соберёте полное лукошко. Два человека на страже не пропускают никаких концептуальных изменений: будто посреди рушащегося мира нужно удержать хотя бы то, что есть. Не понять им, что они так крепко держат, что мир крошится в их руках.
Над моделью данных нет контроля. В последний раз для изменения API потребовались деньги и усилия целой компании Cloudmade, десятка осмеров, работавших за венчурные инвестиции несколько недель. Надежда на тип area или другие изменения тлела лет пять назад, но теперь об изменениях перестали думать даже самые оптимистичные осмеры. Единственное, что нас ждёт в API, — это огораживание личных данных для GDPR, да и то потому что штраф платить никто не хочет.
Над тегированием нет контроля. Главное отличие и достоинство OpenStreetMap — свободная атрибутивная модель — настолько разрослась, что никому, даже ветеранам проекта, не под силу выбрать правильные теги. Форумы полнятся шутками про вереск, лес и пространства имён. Пропозалы — смех: с одной стороны изобретают инопланетные схемы на полсотни килобайт, с другой изворачиваются в попытках потопить каждое предложение. Новички не офигевают только потому, что все редакторы, даже мобильные, заменили таблицы тегов заготовками.
Над картостилем нет контроля. Когда-то основной стиль был настолько сложен, что все боялись к нему притронуться. Потом его перевели на CartoCSS, навели порядок, и сразу потянулись участники, пошла работа. Несколько лет улучшали значки и цвета, поменяли структуру базы данных, причесали шрифты — карта стала выглядить прилично, как у людей. Такая же блёклая.
Но сейчас заметно, что никто не знает, куда двигаться дальше. Собственно, Пол Норман с этой темой уже два года выступает на конференциях. На конвульсии разработчиков особенно тяжело смотреть в этом году: они безуспешно пытаются изменить устоявшиеся схемы тегирования, потому что модель данных OSM несовместима с приличной картографией. Мы упёрлись в потолок стека, написанного пять лет назад. Единственным разумным выходом будет выкинуть всё и начать заново — что авторы и обсуждают.
Над разработчиками нет контроля. «Наш главный ресурс — это люди, которые тянут проект в светлое будущее». Ага, а присмотришься к разработчикам — там кто в лес, кто по дрова. Одни пилят двадцатый геокодер или десятый роутер, другие на две недели погружаются в жонглирование данными, чтобы на выходе получить невпечатляющий набор точек. «Мне удалось поднять тайл-сервер» — слышно из угла. Мои поздравления, блин. 2018 год, а у нас ни окружения для разработчиков или интеграторов, ни финансовой поддержки, ни стратегического плана. Только по одному волонтёру на ключевых элементах инфраструктуры сидят.
Над лицензией нет контроля. Картографы хотят защитить свой труд, это понятно. Отсюда растут все вирусные лицензии, которые когда-то ставили целью сделать мир лучше, открытее. Вот только у них обнаружилась проблема. Для успеха в этом мире нужно уметь договариваться. Взять у муниципалитета информацию по всем зданиям, а взамен предоставлять правки, уточняющие геометрию. Позволить сервису бронирования не раскрывать данные о гостиницах, которые они примешивают, чтобы получить полтора миллиона проверенных точек и иметь возможность исправлять ошибки позиционирования в сервисе, которым пользуются сотни миллионов. И так далее.
Наша лицензия запрещает всё это, от чего третьи стороны не особо страдают — у них уже есть достаточно данных. Страдаем мы, потому что не можем адекватно ни с кем договориться. Участники сообщества зорко следят, чтобы никто не проскочил. Даже с тривиальными случаями использования у нас проблема. Я только за этот год видел полдюжины вопросов насчёт использования карты в телепередачах, и каждый раз на одинаковые вопросы им выдавали разные ответы. Никто, даже юридическая рабочая группа, не понимает ODbL. Но это статус кво, в OpenStreetMap он тут власть.
Всё, что на сегодня способно сообщество OpenStreetMap, — сообща за выходные нарисовать домики ещё в одном городе. Поэтому главными применениями проекту остаются гуманитарные инициативы, да использование в качестве подложки, когда не хватило денег на нормальную карту. Вспомните, что у нас такого происходило за последний год, достойного заметок в главных технологических журналах? Новую версию JOSM выпустили с обрезанием пробелов в тегах?
Да, полагаться на проприетарную карту — значит, отдавать часть контроля корпорации. Но вы уверены, что хотите иметь контроль над каждой частью картографического стека? Вам точно хватит денег? Коммерческая компания может изменить условия и поставить вас в неловкое положение, но от OSM её отличает договороспособность. Там работают живые люди и у них есть все рычаги: можно позвонить и сторговать лимиты, или попросить помочь с картографическими данными. Для них вы — клиент; для OSM вы, если чего-то хотите от карты для бизнеса, хуже чем никто.
Поэтому OpenStreetMap не растёт. Если приглядеться, на графиках намечаются негативные тренды. Как викимапия около 2011 года, наш проект выбрал большую часть своих смыслов. С нынешним направлением у нас ещё лет десять, после которых мы будем выглядеть как викимапия сейчас: с кучей данных и без сообщества, разбежавшегося по альтернативным проектам. И тогда уже люди, выбравшие OSM как замену Google Maps, задумаются.
Именно сейчас, в ближайшие два года, нужно найти для проекта новые векторы развития. Риторика «а зато у нас бесплатно», неизменная на протяжении десяти лет, превратилась из прогрессивной в жалкую. Главный вопрос — зачем вам OpenStreetMap, когда есть много альтернативных картографических сервисов, каждый из которых в чём-то его превосходит (и не надо тут про качество отрисовки вашего двора)? Может, мы собираемся перевернуть обучение географии, или стать новой универсальной базовой картой, или заделаться фреймворком для экспериментов в новой картографии. Любой ответ хорош, если вы готовы подкрепить его делом.
Читайте также: