Страница 1 из 1

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

Добавлено: 16 июл 2017, 17:59
ANAT01
Как получить список номеров тайлов на которые попадает полигон (не bbox, а по границе полигона)?

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

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

Добавлено: 16 июл 2017, 20:40
Александр Мурый
Может быть, код из плагина Tile Cover сможет помочь?

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

Добавлено: 17 июл 2017, 11:08
Zverik
pip install polytiles
polytiles -p polygon.poly -x tiles.lst -z minzoom maxzoom

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

Добавлено: 17 июл 2017, 18:36
ANAT01
Спасибо!!! А то я уж думал штудировать 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. "Пересечение" данных выделено желтым.
Изображение