GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


Основы работы динамических TMS-сервисов

Обсуждение материалов сайта: вопросы, замечания, предложения

Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 06 апр 2013, 16:42

Написал статью. Приглашаю к обсуждению.

------------------------------------------

P.S. статья опубликована.
  • 8

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение Максим Дубинин » 06 апр 2013, 16:58

1. Понимаю, что дублирование, но начать стоит с определения TMS-сервиса.
2. Можно ли понятнее сформулировать: "HTTP-сервер самостоятельно отображает запрашиваемый URL на структуру файловой системы"
3. После структуры кэша напршивается минимум разъяснений для 1-2-3, и т.д.
4. "Для создания тайлового кэша ..." после этого я бы одним предложением написать в чем суть создания "нарезка растров на фрагменты (тайлы) ...."
5. Я не понял вот это:
для создания сервиса необходимы инструменты, позволяющие следующее:

1. Элемент нумерованного списка
2. Элемент маркированного списка

Остаточная вики-разметка чтоли? :)
  • 0

пристегивайтесь, турбулентность прямо по курсу
Аватара пользователя
Максим Дубинин
NextGIS
 
Зарегистрирован: 06 окт 2003
Откуда: Москва (на карте)
 
Сообщения: 8860
Репутация: 621
Статьи: 231
Проекты: 12/6

Re: Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 06 апр 2013, 17:01

1. Добавил.
2. Это стандартная возможность HTTP-сервера (mapping URL to file system), даже не знаю что тут написать, есть варианты?
3. Добавил.
4. Чуть дописал.
5. Поправил, не понял откуда оно вылезло.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение yellow-sky » 07 апр 2013, 11:46

Статья просто супер! Все просто и ясно. Денис, пиши побольше таких статей.
P.S.
Предлагаю в статьях выделить отдельную группу для тайловых технологий
  • 0

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

Re: Основы работы динамических TMS-сервисов

Сообщение KolesovDmitry » 07 апр 2013, 12:51

Наверное, где-то вначале стоит сделать замечание, что в статье рассматриваются примеры с использованием python (В статье встречаются моменты, которые вытекают не из особенностей тайловых сервисов, а из конкретной питоновской реализации -- например, фрагмент про настройку виртуального окружения. Соответственно, такие фрагменты лучше сопровождать пояснением, что это конкретная реализация, на других языках будет иначе).
  • 0

KolesovDmitry
Гуру
 
Зарегистрирован: 22 авг 2007
Откуда: Казань (на карте)
 
Сообщения: 801
Репутация: 116
Статьи: 18
Проекты: 4

Re: Основы работы динамических TMS-сервисов

Сообщение Максим Дубинин » 07 апр 2013, 13:15

Денис, я поправил как мне было бы более понятно, если не согласен, просто откати как было.
  • 0

пристегивайтесь, турбулентность прямо по курсу
Аватара пользователя
Максим Дубинин
NextGIS
 
Зарегистрирован: 06 окт 2003
Откуда: Москва (на карте)
 
Сообщения: 8860
Репутация: 621
Статьи: 231
Проекты: 12/6

Re: Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 07 апр 2013, 13:24

KolesovDmitry писал(а):Наверное, где-то вначале стоит сделать замечание, что в статье рассматриваются примеры с использованием python (В статье встречаются моменты, которые вытекают не из особенностей тайловых сервисов, а из конкретной питоновской реализации -- например, фрагмент про настройку виртуального окружения. Соответственно, такие фрагменты лучше сопровождать пояснением, что это конкретная реализация, на других языках будет иначе).

Замечание по делу, спасибо. Просто когда переносил свой текст в вики упустил одно предложение как раз касающееся питона, сейчас дописал.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 07 апр 2013, 13:32

Максим Дубинин писал(а):Денис, я поправил как мне было бы более понятно, если не согласен, просто откати как было.

Спасибо, если считаешь, что так будет понятнее, то оставляем.
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение любитель » 07 июн 2013, 12:05

Да, статья хорошая, спасибо.
Ожидаются ли подобные статьи про "смешанный" сервер ?
  • 0

любитель
Новоприбывший
 
Зарегистрирован: 05 окт 2009
 
Сообщения: 11
Репутация: 0

Re: Основы работы динамических TMS-сервисов

Сообщение shush » 11 авг 2013, 13:42

Интересно и злободневно (для меня, во всяком случае). Недавно пришлось решать ту же задачу, но вместо рендеринга на ходу пред-рендеренные mbtiles и вместо bottle асинхронный фреймворк tornado.
Было бы очень интересно узнать о принципах кеширования тайлов и "других полезных функциях".
  • 0

shush
Новоприбывший
 
Зарегистрирован: 04 авг 2013
Откуда: Минск (на карте)
 
Сообщения: 3
Репутация: 0

Re: Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 12 авг 2013, 06:24

любитель писал(а):Ожидаются ли подобные статьи про "смешанный" сервер ?

Что вы понимаете под "смешанным" сервером?
shush писал(а):Было бы очень интересно узнать о принципах кеширования тайлов и "других полезных функциях".

Что именно вам интересно?
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение gala-kt » 23 янв 2014, 13:25

А нельзя ли опубликовать целостный Python-код для описанной функции tms? В чайниковой голове кусками теряется восприятие..
  • 0

Аватара пользователя
gala-kt
Участник
 
Зарегистрирован: 26 июл 2010
 
Сообщения: 85
Репутация: 6
Статьи: 1

Re: Основы работы динамических TMS-сервисов

Сообщение Denis Rykov » 23 янв 2014, 18:45

Там всего два куска, сложите их вместе и все. Можете сюда потом выложить, что именно не понятно?

[ Сообщение с мобильного устройства ]
  • 0

Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3243
Репутация: 466
Статьи: 33
Проекты: 9

Re: Основы работы динамических TMS-сервисов

Сообщение gala-kt » 07 фев 2014, 10:41

Оказывается, все понятно. Даже разжевано. Синтаксис питона был непонятен.
Код: [ Загрузить ] [ Спрятать ]
# -*- 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')
  • 0

Аватара пользователя
gala-kt
Участник
 
Зарегистрирован: 26 июл 2010
 
Сообщения: 85
Репутация: 6
Статьи: 1


Вернуться в Материалы сайта

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).