Создать тайлы с названием населенных пунктов

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Создать тайлы с названием населенных пунктов

Сообщение Yuraz » 17 май 2018, 14:08

Коллеги, вливаюсь в технологию, но вот в сущ. темах не ориентируюсь где и поискать. Кратко:
Надо создать тайлы полностью как это:
http:// apkk5.rosreestr.ru/arcgis/rest/services/BaseMaps/Anno/MapServer/tile/{z}/{y}/{x}
сам файл:
http:// apkk5.rosreestr.ru/arcgis/rest/services/BaseMaps/Anno/MapServer/tile/9/159/308
как выглядит - прозрачный png с текстовыми названиями.
308.png
308.png (16.77 КБ) 5446 просмотров
Есть - координаты и названия меток (лежат в массиве / GeoJSON ..). Как затайлить всё это и получить PNG под нужный масштаб.
До этого благополучно резал растровый GeoTIFF с помощью gdal2tiles.py, а тут резать нечего, надо заново создать.

Добавлю - а может тайлы и не создавать, а делать скриптом на сервере в момент запроса с веб браузера клиента!?

Заранее благодарен!

Vadim
Завсегдатай
Сообщения: 297
Зарегистрирован: 03 июн 2015, 10:19
Репутация: 72

Re: Создать тайлы с названием населенных пунктов

Сообщение Vadim » 17 май 2018, 14:20

Как я понимаю, Вам сначала нужно сделать растровый слой из вектора через gdal_rasterize (http://www.gdal.org/gdal_rasterize.html), а потом как обычно - gdal2tiles.py

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Создать тайлы с названием населенных пунктов

Сообщение Yuraz » 21 июн 2018, 10:51

Вадим, спасибо за ответ, но что то совсем сложно, в тупик зашел с этим gdal_rasterize. Вот что я сделал.

1. Создал файл с точками: mydata.csv:

Код: Выделить всё

 ID,Latitude,Longitude,Name
1,48.1,0.25,"First point"
2,49.2,1.1,"Second point"
3,47.5,0.75,"Third point"
2. Создал файл mydata.vrt:

Код: Выделить всё

<OGRVRTDataSource>
    <OGRVRTLayer name="mydata">
        <SrcDataSource>c:\Python\mygdal\mydata.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <LayerSRS>WGS84</LayerSRS>
        <GeometryField encoding="PointFromColumns" x="Longitude" y="Latitude"/>
    </OGRVRTLayer>
</OGRVRTDataSource>
3. Создаю файл shp:

Код: Выделить всё

ogr2ogr -f "ESRI Shapefile" c:\Python\mygdal\mydata.shp c:\Python\mygdal\mydata.vrt
причем, всего создается 4 файла:
mydata.dbf
mydata.prj
mydata.shp
mydata.shx

4. Подхожу к gdal_rasterize, посмотрел опции, при которых создается файл tif. Но при нескольких десятках попыток, так и не создаётся tif. Как правильно "прожечь" tif с нуля?

И исходя из 4 пункта, хотелось бы задать метку точки (png файлик метки надо куда то подложить?), задать шрифт и размер шрифта для метки, задать куда выводить текст метки относительно точки.

И последнее, генерить tif нужно будет для каждого масштаба, иначе метки не прочитаются на других масштабах.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Создать тайлы с названием населенных пунктов

Сообщение Александр Мурый » 21 июн 2018, 11:36

Я бы не трогал "gdal_rasterize", а использовал бы предназначенные для этого инструменты, например, Geoserver + GeoWebCache или MapServer + MapCache.
Редактор материалов, модератор форума

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Создать тайлы с названием населенных пунктов

Сообщение Yuraz » 21 июн 2018, 14:07

Александр, благодарю за ответ. Вот ещё какие обстоятельства, скачал QGIS на 500мег, установил, на 2гига чтоли сократился мой SSD диск, ну и место почти закончилось. Т.е. серверы смысла нет ставить - стрелять пушкой по воробьям в моем случае? У меня есть веб сервер xampp на локальной, и веб сервер в сети. Использую Python/GDAL, пока одним GDAL из командной строки, все устраивает. Нарезал gdal2tiles.py, залил png на веб сервер, и порядок. Удобно. А тут вот бы просто сгенерировать tiff для нарезки gdal2tiles.py, и было бы вообще всё идеально )) Хотелось бы обойтись одним GDAL. :?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Создать тайлы с названием населенных пунктов

Сообщение Александр Мурый » 21 июн 2018, 14:35

Yuraz писал(а):
21 июн 2018, 14:07
Хотелось бы обойтись одним GDAL
Вы стиль подписей как будете делать на чистом GDAL? И рендерить чем будете эту картинку? Нужна либо настольная ГИС, либо картографический сервер. <gdal_rasterize> сам по себе здесь не поможет.
Попробуйте оформить данные в QGIS и применить модуль QTiles (или его аналоги).
Редактор материалов, модератор форума

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Создать тайлы с названием населенных пунктов

Сообщение Yuraz » 22 июн 2018, 10:11

Александр Мурый писал(а):
21 июн 2018, 14:35
Попробуйте оформить данные в QGIS и применить модуль QTiles (или его аналоги).
Александр, все супер! Действительно без ГИС не обойтись, установил QGIS 3.0.2-Girona. Точки "развернул", увидел. Сделал как надо метки, подписи.

Так "засада" - QTiles не поддерживает QGIS выше 3й версии!
(Модуль несовместим с текущей версией QGIS
Совместимые версии QGIS: 2.0 - 2.99)

А какие аналоги можно использовать? Поиском прошелся по Tiles, выдает только "Vector Tiles Reader", но это не то.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Создать тайлы с названием населенных пунктов

Сообщение Александр Мурый » 22 июн 2018, 11:46

Yuraz писал(а):
22 июн 2018, 10:11
Так "засада" - QTiles не поддерживает QGIS выше 3й версии!
Ставьте стабильную версию QGIS 2.18.*, тут без вариантов.
Редактор материалов, модератор форума

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Создать тайлы с названием населенных пунктов

Сообщение Yuraz » 22 июн 2018, 13:01

Александр Мурый писал(а):
22 июн 2018, 11:46
Ставьте стабильную версию QGIS 2.18.*, тут без вариантов.
Ясно, поставлю. Интересно будут ли они конфликтовать обе рядом. И вообще нужна ли 3я пока?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Создать тайлы с названием населенных пунктов

Сообщение Александр Мурый » 22 июн 2018, 13:12

Yuraz писал(а):
22 июн 2018, 13:01
Интересно будут ли они конфликтовать обе рядом. И вообще нужна ли 3я пока?
Конфликтовать не должны. По мне так 3-ка не нужна при наличии 2.18*, она ещё сырая.
Редактор материалов, модератор форума

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 11 гостей