Я ищу мелкомасштабный и простой способ представления одного или нескольких многоугольных шейп-файлов в Интернете (если быть точным, на муниципальном веб-сайте без какой-либо существующей инфраструктуры картографического сервера). Прямо сейчас я делаю всю работу с QGIS, и я бы предпочел оставить все с открытым исходным кодом (не осталось никакого бюджета для каких-либо крупных инвестиций в программное обеспечение).
Исследование этой темы привело к огромному количеству возможных подходов и оставило меня в замешательстве. Что я ищу это
- возможность отображать категорированные полигоны на тематической карте (- если это возможно, было бы неплохо получать всплывающие окна или иметь возможность получать информацию об атрибутах - но это крайне необязательно)
- Я предпочел бы выполнять большую часть работы (стайлинг и т. Д.) В QGIS
- OSM в качестве базовой карты будет в порядке
Пока что пользовательские листы карты на базовой карте OSM выглядят как то, что я ищу (или есть лучшее решение)? Каков был бы лучший способ создать эти плитки?
qgis
openstreetmap
openlayers
web-mapping
tiles
SAnderka
источник
источник
Ответы:
Для простого способа сделать это, начиная с QGIS, вы можете использовать QGIS Mapserver, который может обслуживать карты, которые вы проектируете, используя обычный интерфейс QGIS. В качестве альтернативы вы можете использовать GeoServer, который основан на Java и, возможно, проще в установке. Так как обе программы обслуживают карты, используя открытые стандарты, если вы начинаете с одной и должны переключаться позже, нет необходимости менять клиента.
Как только вы настроите систему для обслуживания карт WMS, вам понадобится клиентский интерфейс. Я бы порекомендовал OpenLayers, так как с ним довольно просто начать и легко расширять. Он обрабатывает плитки WMS, WMST и OSM без проблем.
В конечном счете вам может потребоваться перейти на листы для ваших слоев WMS (скажем, вы начнете получать более 50-100 запросов в минуту на разумном оборудовании), а затем вы захотите разместить кэш листов перед картографическим сервером. Если вы использовали GeoServer, то вы можете использовать встроенный GeoWebCache или использовать TileCache .
источник
Все это можно сделать в рамках QGIS и
ogr2layers
плагина. Рабочий процесс прост:Стиль ваших данных в QGIS. Используйте старую символику, так как у меня были проблемы с
New Symbology
при использованииogr2layers
плагина.Запустите
ogr2layers
плагин и определите параметры openlayers (такие как размер карты, элементы управления картой, базовая карта и т. Д.). Это создаст каталог, содержащийindex.html
и ваши слои данных, преобразованные вgeojson
файлы.Загрузите каталог на веб-сервер.
Обратите внимание, что это только для простой веб-карты. Для создания пользовательских базовых карт и других функций веб-карт проверьте ответы Ианта и Питера.
источник
Другой вариант - TileMill - он поддерживает мозаику , взаимодействие и картографию в простом в использовании веб-интерфейсе, включая определения стилей на языке прото-CSS, который называется cascadenik . Используя TileMill, вы можете проверять файлы mbtiles, которые можно использовать с чем-то вроде TileStream . Тем не менее, есть еще некоторые хитрости с развертыванием отображаемых выходов, но это даст вам хорошую платформу для генерации высококачественных плиток.
источник
Я решил предоставить некоторую информацию о том, каким образом я наконец-то выбрал свой картографический сервис. Чистый JavaScript и GeoJSON не были решением, потому что мне приходилось обрабатывать примерно 40 000 полигонов и 33 000 точек. Итак, я пошел за плиткой. О, и у меня до сих пор нет доступа к корневому серверу, поэтому я не могу настроить GeoServer или что-то подобное (в настоящий момент это не представляется возможным с финансовой точки зрения для одного клиента)
После некоторого исследования и чтения я наконец-то остановился на OpenLayers (после некоторой демонстрации с GMaps). Великая книга Эрика Хаззарда «OpenLayers 2.10» (Packt Publishing, 2011) действительно очень мне помогла, потому что она также охватывает некоторые основы JavaScript и советы по отладке.
Конечно, я делал всю свою работу с векторными данными в QGIS, и это определенно способ пойти на такого маленького фрилансера, как я (я также знаю кое-что из ArcGIS из университета, но QGIS предлагает все, что мне когда-либо было нужно).
Разработка карты и создание плиток было более сложной задачей. Во-первых, я согласился с « GMapCreator » от CASA, но наложение нескольких шейп-файлов оказалось утомительным (я должен предоставить точечные данные по полигонам, а затем по городской границе, охватывающей все). Это абсолютно возможно сделать в GMapsCreator (и я сделал это на этапе демонстрации), но это занимает 3 полных цикла рендеринга (сначала вы создаете плитки, затем существующие плитки «перезаписываются» с более поздними функциями - рендеринг выполняется в правильном порядке). важно!), а меню стиля немного громоздкие и запутанные. Сохранение карты и ее последующее редактирование также является сложной задачей.
TileMill выглядел очень многообещающе, особенно их CSS-подобный стиль, поэтому я изучил его. К сожалению, это только Mac или Linux, так что это может отпугнуть некоторых людей. Мне очень понравилось то, что я увидел, поэтому я установил раздел Ubuntu на свой жесткий диск, загрузил его и стилизовал свои карты. Документация по синтаксису стиля иногда немного скудна, но просмотр их демо-видео (ссылка на главном сайте) дает ответы практически на все вопросы. Можно сделать некоторые интересные вещи с вложенными и / или условными стилями, и некоторое базовое понимание CSS должно действительно привести вас туда, куда вы хотите.
В конце концов, TileMill отображает хороший одиночный файл * .mbtiles. Я не думаю, что есть способ напрямую отобразить их в OpenLayers (по крайней мере, я не смог найти один?), Поэтому пришло время использовать другой инструмент: mbutil . Этот инструмент "распаковывает" файл mbtiles в обычную структуру папок, содержащую png-файлы моих данных на выбранных уровнях масштабирования.
Наконец, я загрузил все эти файлы на свой FTP-сервер, немного поработал над OL, чтобы запустить мою веб-карту (вы добавляете созданные плитки в качестве слоя TMS, но угадывание правильного исходного URL-адреса и имени слоя заняло некоторое время и googling), а затем прожег несколько часов, возясь с основными проблемами HTML / CSS. Я хотел карту 100% ширины / высоты с плавающей легендой, следуя моим корпоративным (как уже упоминалось, муниципалитету) правилам идентификации.
О, и до сих пор я использую Карты Google в качестве базовых слоев, но это может вскоре заменить некоторые пользовательские аэрофотоснимки, предоставляемые через WMS (не предоставлено мной, но администрация штата проводит опрос и управление геоданными).
Я надеюсь, что не забыл ничего важного, но если я это сделал, пожалуйста, не стесняйтесь спрашивать! Я проверю эту ветку время от времени.
источник
Если у вас менее 1000 полигонов, рассмотрите комментарий @ Mapperz к векторному решению - не нужно создавать и хранить неинтерактивные мозаичные изображения, если у вас всего несколько полигонов.
Черепичные изображения оптимальны для очень плотной информации, например, для отображения спутниковых изображений, дорог или 50 000 полигонов переписных участков.
Самое простое решение для небольшого числа полигонов - преобразовать шейп-файл в KML и загрузить его в Google My Maps.
Если вы кодируете в Javascript, наиболее интерактивным решением является API Карт Google (или OpenLayers) для рисования полигонов и создания всплывающих окон с информацией. Вы можете начать с преобразования полигонов шейп-файлов с помощью библиотеки GDAL в файл geoJSON (способ хранения географической информации с помощью Javascript).
Или, если вы пошли по маршруту с плитками, вы можете хранить плитки на Амазонках или в облаке Google без каких-либо внутренних проблем.
В этой записи блога Thematic Mapping есть краткое изложение преимуществ векторного подхода по сравнению с подходом листов, который вы рассматриваете.
Удачи!
источник
Я чувствую к тебе приятель, так как я медленно продвигался к тому же выводу. Изучив QGIS, я попробовал квантамник и мапник. Но хотя он будет переносить стилевое оформление qgis в одну сторону, а системы стилей не будут 1 к 1, следовательно, вам все равно придется изучать стилевое оформление mapnik. Я предполагаю, что то же самое относится и к функции экспорта qgis mapserver. Похоже, что на mapserver не существует «легкого способа» повышения квалификации, просто включите его и оставьте достаточно времени.
Mapnik, геосервер, mapserver, кажется, есть преданные каждого, но mapserver, кажется, средняя дорога.
Сказав, что есть один ярлык, который я нашел, и это qgis имеет опцию командной строки для растеризации карты qgis до разрешения и границ по вашему выбору, и создает файл мира. При этом вы можете использовать maptiler или gdal2tiles, чтобы накладывать по одному слою за раз. Очевидно, что не подходит для 20 уровней масштабирования, и я не знаю, каков максимальный предел размера PNG.
источник