Pull to refresh

Comments 25

А можете исходники (картинку + shp) дать? Хочу сделать то же самое на API Яндекс Карт.
К сожалению нет. Карты секретные, из земельного кадастра
Для того, чтобы карта выглядела «красиво, а не так, как сейчас», вам нужно, чтобы карта была в векторе, а не этот чудовищный bmp, который нарисован вручную и отсканирован. Очевидно, что использование GeoServer вам тут не поможет.
Если у вас будут векторные данные, то наличие сервера также не является обязательным, стилизовать вектор можно и без него, хотя с ним стили применять, конечно, проще.
Еще — не режьте схематические изображения в JPEG, для таких изображений существует PNG.
Система координат «план схема» и «местная система координат» — разные вещи. Первое — это вообще не система координат, потому что она абсолютно условна, там только масштаб сохраняется. Второе — это таки должна быть утвержденная система координат со всеми полагающимися атрибутами вроде проекции, используемого эллипсоида и так далее.
«Копать в сторону OSM» вам также совершенно не нужно. Достаточно овладеть любым сравнительно простым инструментом из арсенала GIS, где вы сможете оперировать набором векторных слоев, их атрибутами, стилизацией и так далее. Инструментарий OSM имеет достаточно узкое применение (для задач самого проекта) и для чего-то более простого является слишком громоздким.
Суть как раз в том, что в итоге мы хотим отрисовать этот черно-белый планшет полностью в векторе, с отключаемыми при этом слоями. Тайлы в PNG нарезаны, просто подложка белая, а не прозрачная.

Вопрос где что отрисовывать в векторе? Например чтобы дороги были дорогами как на картах, а не черной линией
Сначала — векторизовать и разнести на слои.
Затем — стилизовать.
Потом — нарезать на тайлы.
Для первого существует EasyTrace, у него есть бесплатная версия, вам ее хватит.
Для второго можете воспользоваться практически чем угодно — тем же QGIS. Оттуда же и экспорт в растр и нарезку сделать сможете.
Повторю еще раз: вы не хотите связываться с инфраструктурой, которая предназначена для OSM — ваш проект на порядок проще, это будет стрельба из пушки по воробьям, при том разбираться с «пушкой» вам придется очень долго, судя по тому, что вас уже gdal2tiles так напугал, что вы его трогать не стали.
Moskus спасибо вам еще раз) помогли мне на тостере и теперь подсказываете тут) Gdal2tiles не напугал, просто раз без привязки к координатам, то зачем делать сложно)

Еще раз, шейпы сделаны и разнесены по слоям, значит переходим к стилизации в QGIS? А после стилизации мы режем векторы на тайлы? Это странно, видимо тут я недопонял) мне казалось все карты типа 2GIS, Яндекса и т.д. сделаны в векторе, а не в растре порезанном на тайлы
Использовать растровые или векторные тайлы — это личный выбор каждого разработчика (в соответствии с задачей, конечно).

Не понимаю, почему вы оперируете такими понятиями, как «казалось» — в любой современный browser встроен отладчик, вы можете посмотреть внутреннее устройство любой страницы (включая картографические сервисы) и почти везде сможете увидеть растровые тайлы в .png
Да, это я видел) просто как я себе опять же «представлял» у них есть сервер с данными, которые обрабатываются и выводятся в виде растра, в ОСМ как я мельком глянул, есть стили для сельской дороги, для городской дороги и т.д. Готовый набор условных знаков.

Вы же предлагаете практически вручную рисовать карты, выводить в растр и резать? Других способов обработки шейпов нет? Переводить в базу данных точек и залить в мапсервер, который будет их уже обрабатывать например. Или так не работает никто?

Картинка такая планируется не одна и не 10, а желательно чтобы они были на едином пространстве. Тот планшет что сейчас, это просто экспериментируем на маленьком кусочке карты)
Ну да, есть база с векторными данными, которые потом, в соответствии с выбранными стилями, растеризуются в тайлы, которые, в свою очередь, раскладываются по content distribution network и отдаются пользователям.

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

Если у вас есть векторная геометрия тех данных, которые вы хотите отобразить (линии, точки), то что в MapServer (точнее — для MapServer, потому что встроенного редактора стилей у него нет, он есть, по-моему, в uDig), что в QGIS, вам нужно создать набор правил, стилей, условных знаков, которые будут применяться к этой геометрии на основании логических атрибутов, имеющихся у геометрии.

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

Правила придется создать вручную. И атрибуты при векторизации планшетов тоже придется задавать (не обязательно для каждого объекта, если вы будете, скажем, последовательно векторизовать только здания, потом только дороги и так далее).

Вот когда у вас таких картинок окажется много, тогда и вспомните мои слова о том, что они должны быть сшиты по координатам и что работать в на столько условной системе координат — геморрой.
Чтобы получить представление, на что похож проект карты в QGIS со стилями, можете с gis-lab.info скачать одну из готовых сборок OSM под QGIS и посмотреть, как оно там все сделано. При этом совершенно не важно, что это данные OSM, в данном случае, это просто геометрия со стилями.
Ребят, любые подсказки куда дальше двигаться, в сторону mapserver или смотреть как устроены osm или вообще что делать с условными знаками) будет очень кстати если вы дадите комментарии
Пожалуй, нужно просто пойти на gis-lab и изучить его содержимое подробнее. Тогда не будет высказываний следующего вида:

так как многой информации на русском языке в интернете по-моему нету, а до какой-то я дошел случайно

Да и вопросы, по-моему, на профильном форуме задавать куда логичнее.
А топикстартер и задает. Вон, спросил там на форуме, как ему отключить масштабирование векторного слоя в Leaflet. А на самом деле, имел в виду, наоборот, включение изменения толщины линий пропорционально масштабу отображения. Так что да, учиться, учиться, учиться.
У мапсервера есть удобная обвязка на python — mascript, с помощью котрого можно формировать мап конфиги и скармливать их мапсерверу (можно файл с конфигом получить, а можно прямо ответ от библиотеки).

Тайлы нарезали по требованию с помощью TileCache (gdal — для геопривязанных проверенных данных, PIL — для любых изображений, чтобы показывать исходные данные).

Есть еще mapnik, его мы использовали для отбражения sxf и s57.
Сначала хотели и с другими типами карт работать напрямую, пришлось возиться с shp, потом решили все в geotiff перегонять, и уже в вебе с помощью мапскрипта отображать необходимые карты по WMS или TMS.

Я тоже не профи, но попробуйте посмотреть в сторону gdal, mapnik, maserver, почитайте про geotiff, про сервисы TMS, WMS, WFS. Для работы с проекциями есть proj4. Это все больше к серверной части относится, на клиентской известные мне инструменты: OpenLayers, leaflet и proj4.js.

Не совсем понятно, у вас shp с координатами в какой-то проекции? WGS 84? Или вообще географических координат нет?
Не стоит путать человека, если вы сами в теме не ориентируетесь.
WGS84 — это что угодно, но не проекция. Вы хотели спросить не про проекцию, а про систему координат.
Системы координат у этих шейпов нет — они (вероятнее всего) в той системе, которую российские специалисты привыкли называть «план-схема». То есть масштаб там соблюдается (между точками, расстояние между которыми в реальности — метр, тоже будет разница координат в метр, точнее — в одну единицу или в сто единиц — смотря какую точность они там используют). А кроме масштаба, больше ничего нет.
Вот тут все это называется проекциями spatialreference.org/ref/epsg/wgs-84 Любая двумерная географическая карта земли — это проекция.

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

Проекция — это метод отображения поверхности Земли на плоскость (а не карта).
Так называемая «географическая проекция», о которой вы твердите — это вырожденный случай, когда географические координаты, определенные на эллипсоиде (то есть сферические, а следовательно — не являющиеся координатами плоской прямоугольной системы) отображаются на плоскости без преобразования. О координатах на эллипсоиде (например, WGS84) также говорят, как о «неспроецированных».

Марш изучать мат. часть.
По этой же причине люди обычно делают квадратные глаза, когда им говоришь, что можно набросать карту в excel / calc.
И прежде чем сыпать всем ассортиментом средств и стандартов, подумайте, а нужны ли они все?
Вот зачем человеку MapServer (и вообще, любая прослойка между базой с геометрией и клиентом), если данные не будут обновляться постоянно (учитывая характер исходных данных — сканированные планшеты городской топосъемки)?
В этом случае достаточно использовать любую настольную ГИС, из которой можно вывести растреризованное изображение или сразу тайлы.
Мне было гораздо легче освоить консольные утилиты и разобраться в питоновских библиотеках, чем ковыряться в QGis, например. Советую, исходя из собственного опыта.
Выбор пал на leaflet.js, так как это оболочка с открытым кодом, на ней сделаны OSM и мой любимый 2GIS.

Откуда вы взяли про 2GIS? У них своя библиотека
Веб-часть сделана на Leaflet, пусть и сильно дополненном.
А ведь верно.
API 2.0 основан на open-source библиотеке Leaflet.

Забыл про это
Sign up to leave a comment.

Articles

Change theme settings