Основы работы динамических TMS-сервисов
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Основы работы динамических TMS-сервисов
Написал статью. Приглашаю к обсуждению.
------------------------------------------
P.S. статья опубликована.
------------------------------------------
P.S. статья опубликована.
Spatial is now, more than ever, just another column- The Geometry Column.
- Максим Дубинин
- MindingMyOwnBusiness
- Репутация: 743
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
1. Понимаю, что дублирование, но начать стоит с определения TMS-сервиса.
2. Можно ли понятнее сформулировать: "HTTP-сервер самостоятельно отображает запрашиваемый URL на структуру файловой системы"
3. После структуры кэша напршивается минимум разъяснений для 1-2-3, и т.д.
4. "Для создания тайлового кэша ..." после этого я бы одним предложением написать в чем суть создания "нарезка растров на фрагменты (тайлы) ...."
5. Я не понял вот это:
2. Можно ли понятнее сформулировать: "HTTP-сервер самостоятельно отображает запрашиваемый URL на структуру файловой системы"
3. После структуры кэша напршивается минимум разъяснений для 1-2-3, и т.д.
4. "Для создания тайлового кэша ..." после этого я бы одним предложением написать в чем суть создания "нарезка растров на фрагменты (тайлы) ...."
5. Я не понял вот это:
Остаточная вики-разметка чтоли?для создания сервиса необходимы инструменты, позволяющие следующее:
1. Элемент нумерованного списка
2. Элемент маркированного списка

пристегивайтесь, турбулентность прямо по курсу
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
1. Добавил.
2. Это стандартная возможность HTTP-сервера (mapping URL to file system), даже не знаю что тут написать, есть варианты?
3. Добавил.
4. Чуть дописал.
5. Поправил, не понял откуда оно вылезло.
2. Это стандартная возможность HTTP-сервера (mapping URL to file system), даже не знаю что тут написать, есть варианты?
3. Добавил.
4. Чуть дописал.
5. Поправил, не понял откуда оно вылезло.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Гуру
- Репутация: 55
- Откуда: Королев
Re: Основы работы динамических TMS-сервисов
Статья просто супер! Все просто и ясно. Денис, пиши побольше таких статей.
P.S.
Предлагаю в статьях выделить отдельную группу для тайловых технологий
P.S.
Предлагаю в статьях выделить отдельную группу для тайловых технологий
-
- Гуру
- Репутация: 123
- Откуда: Казань
Re: Основы работы динамических TMS-сервисов
Наверное, где-то вначале стоит сделать замечание, что в статье рассматриваются примеры с использованием python (В статье встречаются моменты, которые вытекают не из особенностей тайловых сервисов, а из конкретной питоновской реализации -- например, фрагмент про настройку виртуального окружения. Соответственно, такие фрагменты лучше сопровождать пояснением, что это конкретная реализация, на других языках будет иначе).
- Максим Дубинин
- MindingMyOwnBusiness
- Репутация: 743
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
Денис, я поправил как мне было бы более понятно, если не согласен, просто откати как было.
пристегивайтесь, турбулентность прямо по курсу
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
Замечание по делу, спасибо. Просто когда переносил свой текст в вики упустил одно предложение как раз касающееся питона, сейчас дописал.KolesovDmitry писал(а):Наверное, где-то вначале стоит сделать замечание, что в статье рассматриваются примеры с использованием python (В статье встречаются моменты, которые вытекают не из особенностей тайловых сервисов, а из конкретной питоновской реализации -- например, фрагмент про настройку виртуального окружения. Соответственно, такие фрагменты лучше сопровождать пояснением, что это конкретная реализация, на других языках будет иначе).
Spatial is now, more than ever, just another column- The Geometry Column.
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
Спасибо, если считаешь, что так будет понятнее, то оставляем.Максим Дубинин писал(а):Денис, я поправил как мне было бы более понятно, если не согласен, просто откати как было.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 19
- Зарегистрирован: 05 окт 2009, 16:27
- Репутация: 0
Re: Основы работы динамических TMS-сервисов
Да, статья хорошая, спасибо.
Ожидаются ли подобные статьи про "смешанный" сервер ?
Ожидаются ли подобные статьи про "смешанный" сервер ?
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 04 авг 2013, 22:41
- Репутация: 0
- Откуда: Минск
Re: Основы работы динамических TMS-сервисов
Интересно и злободневно (для меня, во всяком случае). Недавно пришлось решать ту же задачу, но вместо рендеринга на ходу пред-рендеренные mbtiles и вместо bottle асинхронный фреймворк tornado.
Было бы очень интересно узнать о принципах кеширования тайлов и "других полезных функциях".
Было бы очень интересно узнать о принципах кеширования тайлов и "других полезных функциях".
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
Что вы понимаете под "смешанным" сервером?любитель писал(а):Ожидаются ли подобные статьи про "смешанный" сервер ?
Что именно вам интересно?shush писал(а):Было бы очень интересно узнать о принципах кеширования тайлов и "других полезных функциях".
Spatial is now, more than ever, just another column- The Geometry Column.
- gala-kt
- Участник
- Репутация: 6
- Откуда: Санкт-Петербург
Re: Основы работы динамических TMS-сервисов
А нельзя ли опубликовать целостный Python-код для описанной функции tms? В чайниковой голове кусками теряется восприятие..
- Denis Rykov
- Гуру
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Основы работы динамических TMS-сервисов
Там всего два куска, сложите их вместе и все. Можете сюда потом выложить, что именно не понятно?
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.
- gala-kt
- Участник
- Репутация: 6
- Откуда: Санкт-Петербург
Re: Основы работы динамических TMS-сервисов
Оказывается, все понятно. Даже разжевано. Синтаксис питона был непонятен.
Код: Выделить всё
# -*- encoding: utf-8 -*-
from bottle import route, response, run
import mapnik2 as mapnik
@route('/<service>/1.0.0/altay/<z:int>/<x:int>/<y:int>.png')
def tms(z, x, y, service):
bbox = dict(minx=287157, miny=5613155, maxx=920220, maxy=6045880)
step = max(bbox['maxx']-bbox['minx'], bbox['maxy']-bbox['miny']) / 2**z
extents = dict()
extents['tms'] = (
bbox['minx'] + x*step, bbox['miny'] + y*step,
bbox['minx'] + (x+1)*step, bbox['miny'] + (y+1)*step
)
extents['xyz'] = (
bbox['minx'] + x*step, bbox['maxy'] - (y+1)*step,
bbox['minx'] + (x+1)*step, bbox['maxy'] - y*step
)
tile = dict(width=256, height=256)
m = mapnik.Map(tile['width'], tile['height'])
# Указываем путь, где находится файл с настройками Mapnik
mapnik.load_map(m, '/.../.../mapnik-config.xml')
# Выбираем охват тайла из словаря extents согласно типу запрашиваемого сервиса (tms или xyz)
box = mapnik.Box2d(*extents.get(service))
# Отрисовываем тайл
m.zoom_to_box(box)
im = mapnik.Image(m.width, m.height)
mapnik.render(m, im)
output = im.tostring('png')
response.content_type = 'image/png'
return output
run(host='0.0.0.0', port=8080, server='waitress')
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость