You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2016-04-16 22:41:47

romanshuvalov
Member
From: Togliatti, Russia
Registered: 2015-02-26
Posts: 509
Website

Чем попроще сгенерировать векторные тайлы?

Понадобились мне векторные тайлы. Для двух задач:

1) Веб-карта. Все существующие рендеры меня не устраивают, мой растр (ссылка в подписи) слишком неуниверсален, громоздок (вектор всегда громоздкий, и это я только Самарскую область до 14-го масштаба пока рендерю) и постоянно уродлив, потому что в Тайлмилле разработка идёт слишком медленно. Короче, нужны векторные тайлы с отрисовкой в канве браузера и настраиваемыми стилями на стороне пользователя. Заодно будет занимать меньше места на сервере при неограниченном масштабе.

2) Хочу попробовать сделать простенькую игру на оснве OSM. В смысле, уже не в веб-странице, а в полноценным десктопным приложением, OpenGL, 3D и всё такое. Некоторые данные, типа графа дорог, если понадобятся, я вытащу из БД. Но для всего остального нужны векторные тайлы.

Чем попроще сгенерировать их? Прямо в бинарные файлики /z/x/y.bin в любом документированном формате.

Нашел следующее:

1) Mapsforge. Генерируется одной командой. Но формат слишком пересжат, даже целые числа там переменной длины и собираются из кусочков по 7 байтов. И формат сильно урезан в возможностях, кроме Name нет никаких текстовых строк, только идентификатор пар "тег=значение". Зато есть документация и код загрузки файла, который можно использовать для конвертирования в более удобный для меня формат. В проекте где-то была упомянута даже триангуляция полигонов, что тоже очень пригодится. Жаль Явы не знаю, придется всё переводить на Си. В общем, много возни с парсингом формата и заведомо мало возможностей.

2) TileStache. Я так и не понял, работает ли эта штука с обычными геоданными, загруженными в Postgres через osm2pgsql. На странице сказано "Generates vector tiles from OGR datasources". Т.е. ему уже нужны упорядоченные данные для работы?

3) Чужие тайлы, скачанные откуда-нибудь. Главный минус в том, что данные могут быть необновленные, либо неудобно скачиваемые (http://osm2vectortiles.org/downloads - из вариантов только вся планета, 62 Гб, от ноября 2015 года). Кроме того, из-за невозможности сконфигурировать детализацию придется скачивать всё в 16 или даже 17 масштабе, потом фильтровать и склеивать. И делать это регулярно при каждом обновлении. Как-то это неправильно, нужна независимость.

Такие дела. Что посоветуете? Есть еще варианты? Какой вариант попроще?

И ещё маленькая ремарка: я не знаю ни Явы, ни Питона, ни толком postgresql (чуть-чуть). Но написать на Си программку-парсер какого-нибудь формата вполне могу. Поэтому душа лежит к mapsforge, который без заморочек выплёвывает готовый файл, который останется только распарсить. Но смущает заведомая ограниченность формата и, возможно, есть варианты ещё проще? За этим и спрашиваю.

Спасибо.


Мои проекты: 3D-игра Generation Streets (исходник генератора на гитхабе) | велосипедная карта Самарской области

Offline

#2 2016-04-17 02:22:23

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Чем попроще сгенерировать векторные тайлы?

Список имплементаций формата, который использует Mapbox, включая writer-ы: https://github.com/mapbox/awesome-vector-tiles (см. CLI Utulities)


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

Offline

#3 2016-04-17 08:25:35

Zverik
Moderator
From: Tallinn
Registered: 2010-10-14
Posts: 5,699
Website

Re: Чем попроще сгенерировать векторные тайлы?


ШТОСМ | josm.ru | обо мне | удалёнка зло

Offline

#4 2016-04-17 08:55:43

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

Re: Чем попроще сгенерировать векторные тайлы?

Или я чего-то не понял, или не я smile Как векторные тайлы должны помочь в скорости написания стиля, устранении уродливости (tilemill не куда не денется); Зачем всё те же миллионы файликов /z/x/y.bin, когда есть возможность запихнуть их в базу - mbtiles.
Я использовал tippecanoe, создавая из geojson. Правда мне так и не удалось, впихнуть в mbtiles несколько наборов, чтобы было как у mapbox - набор street-v6, а внутри дороги, домики и т.д.

Offline

#5 2016-04-17 11:06:54

romanshuvalov
Member
From: Togliatti, Russia
Registered: 2015-02-26
Posts: 509
Website

Re: Чем попроще сгенерировать векторные тайлы?

формата, который использует Mapbox, включая writer-ы

А я с чего-то решил, что Мапбокс проприетарный и writer'ов для него нет о_О

Спасибо, похоже это то, что нужно.

Как векторные тайлы должны помочь в скорости написания стиля, устранении уродливости

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

Векторные тайлы же будут отрисовываться в браузере, стиль и цвета можно настраивать прямо внутри веб-страницы. Работа пойдет гораздо быстрей и удобней. Так что я смогу задизайнить карту так, как хочу, а не так, чтоб хоть как-то слепилось.

(tilemill не куда не денется)

Что значит не денется? Он мне будет больше не нужен и денется куда подальше.

Зачем всё те же миллионы файликов /z/x/y.bin, когда есть возможность запихнуть их в базу - mbtiles.

Чтобы разместить на веб-хостинге. Один большой mbtile-файл удобнее, но я еще не изучал вопрос насчёт того, как веб-серверу раздавать отдельные тайлы, хранящиеся в большом файле. При том, что у меня нет прав на установку расширений для апача. Число inodes на хостинге тоже ограничено, возможно придётся писать собственный велосипед на php.

Для десктопного использования (в игре и т.п.), конечно, сохраню набор тайлов в один файл.


Мои проекты: 3D-игра Generation Streets (исходник генератора на гитхабе) | велосипедная карта Самарской области

Offline

#6 2016-04-24 16:31:41

andygol
Moderator
From: Дніпро
Registered: 2009-07-31
Posts: 1,968
Website

Re: Чем попроще сгенерировать векторные тайлы?

Roman Shuvalov wrote:

Чтобы разместить на веб-хостинге. Один большой mbtile-файл удобнее, но я еще не изучал вопрос насчёт того, как веб-серверу раздавать отдельные тайлы, хранящиеся в большом файле. При том, что у меня нет прав на установку расширений для апача. Число inodes на хостинге тоже ограничено, возможно придётся писать собственный велосипед на php.

Для десктопного использования (в игре и т.п.), конечно, сохраню набор таймов в один файл.

для п.1. Заливаете ваши данные в свою учетку на Мапбокс и вставляете потом полученную карту(стиль) в свой сервис

https://youtu.be/LxcwJvOwUos?t=14m13s

Вот собственно и всё

PS  Для генерирования mbtiles - https://www.mapbox.com/help/large-data-tippecanoe/

Если нужно периодически обновлять данные карты - https://www.mapbox.com/blog/mapbox-cli-intro/

Offline

#7 2016-04-24 17:02:06

romanshuvalov
Member
From: Togliatti, Russia
Registered: 2015-02-26
Posts: 509
Website

Re: Чем попроще сгенерировать векторные тайлы?

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


Мои проекты: 3D-игра Generation Streets (исходник генератора на гитхабе) | велосипедная карта Самарской области

Offline

Board footer

Powered by FluxBB