Номера тайлов по полигону

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
Аватара пользователя
ANAT01
Активный участник
Сообщения: 158
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 40

Номера тайлов по полигону

Сообщение ANAT01 » 16 июл 2017, 17:59

Как получить список номеров тайлов на которые попадает полигон (не bbox, а по границе полигона)?

Тут в принципе написано про пересчет lat,long но как пройтись по границе?!

Александр Мурый
Гуру
Сообщения: 4978
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 696
Ваше звание: званий не имею
Откуда: Москва

Re: Номера тайлов по полигону

Сообщение Александр Мурый » 16 июл 2017, 20:40

Может быть, код из плагина Tile Cover сможет помочь?
Редактор материалов, модератор форума

Zverik
Активный участник
Сообщения: 141
Зарегистрирован: 11 сен 2011, 14:11
Статьи: 2
Репутация: 86
Откуда: Москва
Контактная информация:

Re: Номера тайлов по полигону

Сообщение Zverik » 17 июл 2017, 11:08

pip install polytiles
polytiles -p polygon.poly -x tiles.lst -z minzoom maxzoom

Аватара пользователя
ANAT01
Активный участник
Сообщения: 158
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 40

Re: Номера тайлов по полигону

Сообщение ANAT01 » 17 июл 2017, 18:36

Спасибо!!! А то я уж думал штудировать shapely/fiona и алгоритмы, снились кошмары и пробивал пот. :)

Для полноты картины:

- Для работы polytiles нужен файл в формате Osmosis polygon filter file format.
- poly умеют готовить несколько скриптов, я выбрал ogr2poly.py

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

# готовим окружение
virtualenv venv
. ./venv/bin/activate
pip install mapnik
pip install polytiles

# готовим poly
python ogr2poly.py mypolygon.geojson

# готовим список тайлов
polytiles -p mypolygon_0.poly -x tiles.lst -z 19 20
Результат еще не успел проверить...

PS:
Александр Мурый писал(а):Может быть, код из плагина Tile Cover сможет помочь?
Он делает по bbox. В принципе так можно делать, а потом находить пересечение с заданной фигурой, но это не совсем то что нужно.

UPD:

Проверил визуально

Здесь построена сетка тайлов с помощью Tile Cover и слинкована с таблицей polytiles. "Пересечение" данных выделено желтым.
Изображение

Ответить

Вернуться в «Общие вопросы»