GIS-LAB

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


Форумы GIS-Lab.info

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


Встраивание кэширующего TMS-сервиса в собственное приложение

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

Встраивание кэширующего TMS-сервиса в собственное приложение

Сообщение Denis Rykov » 17 июл 2013, 13:08

Написал статью, приглашаю к критике.
  • 6

Why nothing works: 999 people wrote their first webapp yesterday. 1000 people will write their first today. Moore's law of inexperience.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3206
Репутация: 450
Статьи: 33
Проекты: 9

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение bim2010 » 17 июл 2013, 13:28

Представленный вариант интеграции возможностей TileCache был использован компанией NextGIS при разработке картографической подсистемы портала системы государственного информационного обеспечения в сфере сельского хозяйства (СГИО СХ).

Нет ссылки на портал. Google нашел решение от компании 'Совзонд"
  • 0

bim2010
Гуру
 
Зарегистрирован: 27 янв 2009
 
Сообщения: 878
Репутация: 208
Статьи: 1
Проекты: 2

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 17 июл 2013, 13:48

возможно и не будет ссылки, это к Ланиту вопрос, где он и работает ли вообще.
  • 0

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

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение vasnake » 18 июл 2013, 17:24

Отличная статья. На примере решения реальной задачи показаны способы использования толковых инструментов. Всё четко и ясно изложено.
Критика целиком положительная :)
  • 0

It ain't easy. It just proves how great I am.
Аватара пользователя
vasnake
Интересующийся
 
Зарегистрирован: 23 май 2013
Откуда: Москва (на карте)
 
Сообщения: 22
Репутация: 6
Статьи: 1

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение yellow-sky » 20 июл 2013, 17:49

Статья супер!
Как и проделанная работа. Нужно бы взять на вооружение постгрес хранилище тайлов :)
Денис, а как у тайл бэкенда с производительностью? Как постгресс ведет себя при многопоточной записи? Если запустить принудительное сидирование в несколько процессов, как быстро идет процесс? Какова производительность записи тайлов в БД?
Не совсем понял, как осуществляется создание и контроль лок фалов? Или в ТайлКэш они не используются?
  • 0

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

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 20 июл 2013, 18:29

Денис, и введение хорошо бы переписать более четко, сейчас так много "если" и такая высокая вложенность, что приходится перечитывать раз 5, чтобы врубиться в чем же суть задачи.

Возможно стоит написать: Проблема, цель, задачи с краткими определениеми.

Я уверен, что они уже есть, но показалось, что малость тяжеловато изложено.
  • 0

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

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Denis Rykov » 21 июл 2013, 14:07

2yellow-sky
Параметры производительности не тестировались, нужно будет попробовать как-нибудь. Поддержка лок файлов есть в Tilecache, но в случае с СУБД в роли бэкенда от них, в принципе, можно отказаться.

2Максим Дубинин
А можешь предложить свой вариант введения? я написал его как видится мне. Но если ты уловил его смысл, то, наверное, будет несложно переформулировать.
  • 0

Why nothing works: 999 people wrote their first webapp yesterday. 1000 people will write their first today. Moore's law of inexperience.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3206
Репутация: 450
Статьи: 33
Проекты: 9

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 21 июл 2013, 18:47

Денис, глянь ка, я довольно серьезно там подредактировал, не уверен, что не поломал местами логику. Но мне кажется стало понятнее)
  • 0

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

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Denis Rykov » 22 июл 2013, 14:17

Да, всё нормально, спасибо!
  • 0

Why nothing works: 999 people wrote their first webapp yesterday. 1000 people will write their first today. Moore's law of inexperience.
Аватара пользователя
Denis Rykov
Author
 
Зарегистрирован: 11 апр 2008
 
Сообщения: 3206
Репутация: 450
Статьи: 33
Проекты: 9

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 26 июл 2013, 21:30

По поводу производительности, разработал такую схему:
OpenLayers делает запрос тайла с ТМС сервера, его встречает Nginx, проверяет, если такого файла на диске нет, то проксирует на TileCache. Далее тилекеш сконфигурирован обращаться на WMS (mapserver + apache2) за картинкой. В файл Service.py (из комплекта TileCache) вставляю вызов своей функции:
которой и передаю готовый обьект таил
if not image:
data = layer.render(tile, force=force)
if (data): image = self.cache.set(tile, data)
else: raise Exception("Zero length data returned from layer.")
+ pg_log.save_to_db(tile,(time.time() - start)) ##### добавленная строка
if layer.debug:
sys.stderr.write(
"Cache miss:layer %s, %s, Tile: x: %s, y: %s, z: %s, time: %s\n" % (
tile.layer.name, tile.bbox(), tile.x, tile.y, tile.z, (time.time() - start)) )
else:

вызываемая функция обрабатывает обьект, заносит в базу координаты бокса ссылку на обьект, xyz - координаты, имя слоя, четвертует для создания квадратичного дерева тайлов. Но сам файл в базу не попадает.

папка для кеша TileCache монтируется по сети с сервера с Nginx. И при повторном обращении к этому тайлу - он уже будет доступен для Nginx-а.

После генерации кеша - работает только специально заточенный для отдачи статики фронтэнд Nginx. База не нагружена. Питон не работает. Существенная экономия ресурсов)))

Если есть вопросы - в личку, обязательно помогу.
  • 0

Olax
Интересующийся
 
Зарегистрирован: 11 мар 2009
 
Сообщения: 16
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 26 июл 2013, 21:51

А вообще статья мне понравилась. пишите еще, очень интересно!
  • 0

Olax
Интересующийся
 
Зарегистрирован: 11 мар 2009
 
Сообщения: 16
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Максим Дубинин » 27 июл 2013, 00:24

Olax писал(а):Если есть вопросы - в личку, обязательно помогу.

Вы наступаете на больную мозоль и нарушаете правила (3.2.4). Здесь форум для открытого общения.

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

Если вы хотите играть по правилам, которые здесь уважают - напишите статью, мы будем благодарны.
  • 0

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

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение Olax » 28 июл 2013, 11:56

Прошу прощения, за свое поведение, дело в том что мне пришлось до всего доходить самому, без чей либо подсказки, или тычка в верном направлении. Поэтому мои наработки выглядят, так сказать "непрофессионально". Вставил там строчку, там функцию и т.д. Исходя из этого, не чувствую за собой готовности выкладывать свои аматорские решения на весь мир и тем более писать статью о своих костылях.
Наверно единственное, чем я могу поделиться в виде статьи - это скрипт генерации кеша тайлов всех зумов и только определенного района. Дайте знать.
  • 0

Olax
Интересующийся
 
Зарегистрирован: 11 мар 2009
 
Сообщения: 16
Репутация: 0

Re: Встраивание кэширующего TMS-сервиса в собственное прилож

Сообщение ericsson » 28 июл 2013, 12:36

Olax, вы в своем сообщении выше описали архитектурный принцип построения сервиса, упомянули конкретные средства реализации такой архитектуры и даже привели пример скрипта.
Это достаточно ценное описание, потому что о функциях отдельных инструментов всегда можно прочесть в документации, а вот совместное использование даже поверхностно бывает описано редко, тогда как любой серьезный проект требует как раз этого.
  • 0

ericsson
Вредитель полей
 
Зарегистрирован: 27 июл 2009
 
Сообщения: 2985
Репутация: 612


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

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

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


(Геокруг)

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