You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2010-01-14 18:01:43

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

TWMS - кеширующий тайловый WMS-сeрвер

Страница проекта: http://code.google.com/p/twms/
wiki (рецепты по установке): http://wiki.openstreetmap.org/wiki/TWMS

Страница на ohloh: https://www.ohloh.net/p/twms/

Тут - делимся мнениями, рецептами, отзывами.

Last edited by Komяpa (2010-06-13 18:47:49)


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#2 2010-01-14 18:15:49

kolen
Member
From: Йошкар-Ола
Registered: 2009-12-23
Posts: 47

Re: TWMS - кеширующий тайловый WMS-сeрвер

Сборка под винду:
http://narod.ru/disk/16906073000/twms-win32.zip.html

Как пользоваться: распаковываем куда-нибудь, запускаем index.exe (да, странное название пока что у бинарника). Кэширует данные он в каталог cache, который находится рядом с экзешником.
По дефолту порт 8080, соответственно пути у WMS будут http://localhost:8080/?layer=...
Можно указать другой порт, запустив с параметром командной строки с номером порта, например index.exe 8888. Можно принимать соединения только с локалхоста, запустив как index.exe 127.0.0.1:8080.

По-идее эта сборка не должна требовать питон и либы, всё уже есть внутри встроенное. Устанавливать ничего не надо.

Собрано из моего форка twms, где интерфейс вебсервера переделан из mod_python, который был в оригинальном twms, на фреймворк web.py. Адрес форка: http://code.google.com/r/incredibleangst-twms-webpy/
В виндовой версии используется встроенный в web.py вебсервер, но web.py по идее поддерживает и другие интерфейсы, например wsgi и fastcgi.

Виндовую версию с экзешниками можно собрать, запустив setup.py py2exe. Для этого потребуются либы: PIL (python-imaging), pyproj и py2exe.

Last edited by kolen (2010-01-14 18:16:37)

Offline

#3 2010-01-14 18:35:16

coolkaas
Member
From: RU, Penza
Registered: 2009-05-28
Posts: 2,391

Re: TWMS - кеширующий тайловый WMS-сeрвер

А если несколько хочется серверов разных? Использовать их по очереди.
Судя по тому, что
"распаковываем куда-нибудь [...] каталог cache, который находится рядом с экзешником."
можно пускать из разных папок разно-настроенные версии? (на разные порты, на разные wms-сервера).
Или я усложнил?

Offline

#4 2010-01-14 18:37:04

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Предусмотреть какой-нибудь TTL для кеша желания нет? Или я чего-то не нашел?


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#5 2010-01-14 18:42:38

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

coolkaas, twms кеширует не wms. он кеширует тайлы. в слоях есть http://127.0.0.1:8080/?layers=yhsat& для яху и http://127.0.0.1:8080/?layers=irs& для IRS.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#6 2010-01-14 19:04:45

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: TWMS - кеширующий тайловый WMS-сeрвер

Нда, а я уже апач настроил :3

Offline

#7 2010-01-14 19:20:39

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Краткий мануал по установке twms на Windows XP

Устанавливаем:

apache
python 2.5 (!!! mod_python под python 2.6 не существует)
mod_python для python 2.5
PIL
pyproj

При написании этой инструкции использовались следующие версии:

apache_2.2.14-win32-x86-openssl-0.9.8k.msi
python-2.5.4.msi
mod_python-3.3.1.win32-py2.5-Apache2.2.exe
PIL-1.1.6.win32-py2.5.exe
pyproj-1.8.5.win32-py2.5.exe

Все установки производим с вариантами по умолчанию.

Открываем файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf.
Находим там множество строк, начинающихся с LoadModule. После последней добавляем:

LoadModule python_module modules/mod_python.so

Далее в конец этого же файла дописываем:

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
    DirectoryIndex index.py
    AddHandler mod_python .py
    PythonHandler index
    PythonDebug on
</Directory>

Скачиваем все файлы от twms отсюда http://twms.googlecode.com/hg/ и кладём в
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs.

Далее правим config.py от twms:

1. Находим и исправляем в начале файла tiles_cache, например, так:

tiles_cache = "d:/twms-cache/"

2. Заменяем пути к *_nxt.jpg, например, в функции FetchIrs:

yh_dead_tile = "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/irs_nxt.jpg"

Перезапускаем apache в Apache Monitor, который можно запустить через трей.

Для проверки пробуем открыть в браузере:

http://localhost/?layers=irs&bbox=38.2645676,56.1453162,39.4603353,56.8057105&srs=EPSG:4326&width=500&height=499

Ссылка на собственный wms в josm: http://localhost/?layers=irs&

Ссылка на собственный wms в fuzzyselect.py:
"http://localhost/?layer=irs&format=image/jpeg&force=noresize&width=600&bbox=%s,%s,%s,%s"%tuple(bbox)

Offline

#8 2010-01-17 02:59:29

vespex
Member
From: Sarov/Moscow
Registered: 2009-12-29
Posts: 143

Re: TWMS - кеширующий тайловый WMS-сeрвер

kolen wrote:

Сборка под винду:
http://narod.ru/disk/16906073000/twms-win32.zip.html

Как пользоваться: распаковываем куда-нибудь, запускаем index.exe (да, странное название пока что у бинарника). Кэширует данные он в каталог cache, который находится рядом с экзешником.
По дефолту порт 8080, соответственно пути у WMS будут http://localhost:8080/?layer=...
Можно указать другой порт, запустив с параметром командной строки с номером порта, например index.exe 8888. Можно принимать соединения только с локалхоста, запустив как index.exe 127.0.0.1:8080.

Замечательная штука, спасибо.

Offline

#9 2010-01-18 03:57:22

Kuprienko_Viktor
Member
From: Apatity
Registered: 2009-08-31
Posts: 240

Re: TWMS - кеширующий тайловый WMS-сeрвер

Под винду оно, конечно, хорошо. А как бы это счастье на линух водрузить? (ASP_14 , fedora_9)
Апачь уже работает, но не силён я в питонах. :(

Last edited by Kuprienko_Viktor (2010-01-18 03:59:19)

Offline

#10 2010-01-18 09:26:23

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Kuprienko_Viktor
поставь mod_python и по аналогии с Windows, там принципиальной разницы нет...

Offline

#11 2010-01-18 09:27:46

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

А реально заставить его работать через локальный прокси?

Offline

#12 2010-01-18 09:35:07

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Реально:

proxies = {'http': 'http://proxyaddress:8080'}
a = urllib.urlopen( url, proxies=proxies )

Offline

#13 2010-01-18 11:09:56

Ezhick
Member
From: Moscow
Registered: 2008-10-08
Posts: 2,508
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

сорри, это куда писать надо?

Offline

#14 2010-01-18 11:22:43

Upliner
Member
From: Kyiv
Registered: 2008-09-18
Posts: 845

Re: TWMS - кеширующий тайловый WMS-сeрвер

Заменить везде обычный urlopen на urlopen с прокси

Last edited by Upliner (2010-01-18 11:51:15)


Big cat is watching you

Offline

#15 2010-01-20 01:09:53

Kuprienko_Viktor
Member
From: Apatity
Registered: 2009-08-31
Posts: 240

Re: TWMS - кеширующий тайловый WMS-сeрвер

Alexandr Zeinalov wrote:

Kuprienko_Viktor
поставь mod_python и по аналогии с Windows, там принципиальной разницы нет...

Обломался. sad  Скрипт пишет, не могу загрузить pyproj, а я так и не нашел в каком пакете оно прячется. Похоже, ни в каком. Вот в Альтлинукс вовсе отдельный пакет для этого модуля, но для 2.6. Мне он не подходит. sad

Offline

#16 2010-01-20 08:11:26

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Скачай и установи pyproj отдельно...

Offline

#17 2010-01-20 08:47:16

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,323
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Если работа с TWMS кроме как в josm не предпологается, можно руками выкосить все упоминания pyproj. Он там исключительно для более-менее корректной работы QGIS и друзей.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#18 2010-01-21 14:55:50

Kuprienko_Viktor
Member
From: Apatity
Registered: 2009-08-31
Posts: 240

Re: TWMS - кеширующий тайловый WMS-сeрвер

Komяpa wrote:

Если работа с TWMS кроме как в josm не предпологается, можно руками выкосить все упоминания pyproj. Он там исключительно для более-менее корректной работы QGIS и друзей.

Из index.py удавил "import pyproj" и строки:
------------------------------------------------------------------
    if srs == "EPSG:4326":
       p = pyproj.Proj("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
    elif srs == "EPSG:3395":
        p = pyproj.Proj('+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs')
        la1,lo1,la2,lo2 = bbox
        la1,lo1 = p(la1,lo1, inverse=True)
        la2,lo2 = p(la2,lo2, inverse=True)
        bbox = (la1,lo1,la2,lo2)
    elif srs == "EPSG:900913":
        p = pyproj.Proj('+proj=merc +lon_0=0 +lat_ts=0 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +units=m +no_defs')
        la1,lo1,la2,lo2 = bbox
        la1,lo1 = p(la1,lo1, inverse=True)
        la2,lo2 = p(la2,lo2, inverse=True)
        bbox = (la1,lo1,la2,lo2)
----------------------------------------------------------------

Оно? Вроде работает.
Это просто праздник какой-то! smile

Offline

#19 2010-01-22 19:29:12

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

С ограничением максимального размера отдаваемого изображения какая-то лажа...


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#20 2010-01-24 11:01:55

progserega
Member
From: Владивосток
Registered: 2009-12-31
Posts: 456

Re: TWMS - кеширующий тайловый WMS-сeрвер

При установке в генте:

Ставим:
www-servers/apache-2.2.14-r1
www-apache/mod_python-3.3.1-r1
dev-python/pyproj-1.8.5
dev-python/imaging-1.1.7

Последний - это и есть PIL.

Ложим в /var/www/localhost/htdocs файлы проекта, взятые с http://twms.googlecode.com/hg/

Патчим конфиг:
mv config.py config.py_def
cat config.py_def|sed "s/\/var\/www\/latlon\/wms/\/var\/www\/localhost\/htdocs/g">config.py

Создаём ди-ю кэша:
mkdir /var/www/localhost/htdocs/cache
chown apache:apache /var/www/localhost/htdocs/cache

В /etc/apache2/httpd.conf добавляем:

LoadModule python_module modules/mod_python.so

<Directory "/var/www/localhost/htdocs/">
        DirectoryIndex index.py
        AddHandler mod_python .py
        PythonHandler index
        PythonDebug on
</Directory>

Ребутаем апач:
/etc/init.d/apache2 restart

В случае merkaartor:
Заходим в tools->WMS Servers editor

Для космоснимков:
Пишем имя: localhost-irs
Server URL: http://localhost/?layers=irs&

Для yahoo:
Пишем имя: localhost-yahoo
Server URL: http://localhost/?layers=yhsat&

Жмём "добавить"

Закрываем.

Нажимаем Ctrl+L - в "Карта" выбираем WMS-adapter и любой и localhost-irs или localhost-yahoo.

П.С. Классная штука! Спасибо! А то утомляло на каждый эвент зума ждать по несколько минут...


matrix.org: @progserega:rsprim.ru

Offline

#21 2010-01-24 11:13:34

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,699
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

Почему-то все линуксоиды копируют вытягивание файлов с сайта из вининструкции вместо предложения установить mercurial smile

Offline

#22 2010-01-27 21:55:29

MatWay
Member
From: Yaroslavl
Registered: 2009-11-19
Posts: 54

Re: TWMS - кеширующий тайловый WMS-сeрвер

Отличная штука!

вот mini-howto по установке в Ubuntu (Jaunty Jackalope) для полных чайников вроде меня :-)

1. устанавливаем необходимые пакеты:
sudo apt-get install apache2 libapache2-mod-python python-pyproj python-imaging mercurial

2. загружаем файлы проекта:
hg clone https://twms.googlecode.com/hg/ twms

3. патчим config.py и копируем файлы туда где их найдет apache
cd twms
mv config.py config.py_def
cat config.py_def|sed "s/\/var\/www\/latlon\/wms/\/var\/www/g">config.py
sudo cp * /var/www/

4. создаём каталог для кэш и устанавливаем на него права:
sudo mkdir /var/www/cache
sudo chown www-data:www-data /var/www/cache

5. в /etc/apache2/httpd.conf добавляем:

LoadModule python_module modules/mod_python.so

<Directory "/var/www/">
        DirectoryIndex index.py
        AddHandler mod_python .py
        PythonHandler index
        PythonDebug on
</Directory>

6. перезапускаем апач:
sudo /etc/init.d/apache2 restart

7. Пробуем открыть в браузере:
http://localhost/?layers=irs&bbox=38.2645676,56.5453162,39.6603353,57.1057105&srs=EPSG:4326&width=500&height=499

8. наслаждаемся видом на Плещеево озеро

9. добавляем сервер в настройках wms-плагина в JOSM
http://localhost/?layers=irs&

10. получаем удовольствие :-)

Offline

#23 2010-02-06 16:31:51

Kuprienko_Viktor
Member
From: Apatity
Registered: 2009-08-31
Posts: 240

Re: TWMS - кеширующий тайловый WMS-сeрвер

Komяpa wrote:

coolkaas, twms кеширует не wms. он кеширует тайлы. в слоях есть http://127.0.0.1:8080/?layers=yhsat& для яху и http://127.0.0.1:8080/?layers=irs& для IRS.

А нельзя ли добавить кэш для Landsat?
Landsat, бывает, довольно тяжко грузится плюс удобно таскать кэш на работу ибо инет там у меня убогий, а времени много - с февраля работаю в режиме простоя.

Last edited by Kuprienko_Viktor (2010-02-06 16:33:36)

Offline

#24 2010-02-06 17:51:22

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: TWMS - кеширующий тайловый WMS-сeрвер

А нельзя ли добавить кэш для Landsat?

Лучше скачайте интересующие вас сцены и раздавайте их себе mapserver-ом - летать будет + получите более качественную картинку скорее всего + будет возможность манипулировать каналами.


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#25 2010-02-07 02:56:31

Kuprienko_Viktor
Member
From: Apatity
Registered: 2009-08-31
Posts: 240

Re: TWMS - кеширующий тайловый WMS-сeрвер

Aleksandr Dezhin wrote:

А нельзя ли добавить кэш для Landsat?

Лучше скачайте интересующие вас сцены и раздавайте их себе mapserver-ом - летать будет + получите более качественную картинку скорее всего + будет возможность манипулировать каналами.

Непростая это штука, mapserver. Вразумительных русских манов я к нему не нашел, а английские не осилю - слишком объёмный материал. sad

Offline

Board footer

Powered by FluxBB