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

продолжение будет? хотелось бы граф.интерфейс и в трей (Win)

зачем серверу графический интерфейс??? 0_0

Наверно, речь о gui для настроек

угу

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

в программир. нуб (((
конфигуратор для версии под win32 иль 64, не столь важно
щас использую версию, как бы помягче выразится, питона, там конешь проще и оперативнее конфиг ручками редактировать
и умела б утилитка в трей прятаться, было б здорово

но если нет, то нет, за утилитку огромное спасибо

Почему-то в вывод некоторые тайлы подсовываются от другого зума: http://amdmi3.ru/files/twms.png
Кроме того, не работает слой IRS из дефолтного конфига.

Когда не удалось подгрузить нужный зум, тайл конструируется из другого.

Там ключ устаревший. Поменяй на такое:

"irs":  { \
     "name": "Kosmosnimki.ru IRS Satellite",
     "prefix": "irs",
     "ext": "jpg",
     "scalable": False,
     "fetch": fetchers.WMS,
     "remote_url": "http://irs.gis-lab.info/?layers=irs&format=image/jpg&force=nocorrect&",
     "min_zoom": 3,
     "max_zoom": 16,
     "empty_color": "#000000",
     "proj": "EPSG:3395",
     "wms_proj": "EPSG:3395",
     "data_bounding_box": (26.0156238531320340,40.7707274153093520,69.257808718487752,67.610652011923932),
}

Это можно как-то изменить?

Работает, спасибо.

Запросить у него область ещё раз - тогда построит правильно.
Насколько я помню, этот баг связан с разделение ресурсов (нескачаных тайлов) между тредами.

Это я понял уже, но это не решение.

twms здесь не при чем. Писал об этом. Не надо прыгать по масштабам, wmsplugin этого не любит.

ikz, причём здесь именно twms

У меня получались точно такие же картинки (микс из 3-6 зумов) без всякого twms. Можешь проверить в логах, это wmsplugin отдает команды на получение тайлов с разных зумов.

Решил установить себе TWMS, так как, почему-то, JOSM упорно не хочет показывать WMS Космоснимки.
Вроде всё сделал как написано в вики http://code.google.com/p/twms/wiki/Installing
Однако на выходе получилось следующее:

MOD_PYTHON ERROR

ProcessId:      844
Interpreter:    'SNK.DOMAIN.RU'

ServerName:     'SNK.DOMAIN.RU'
DocumentRoot:   'D:/GPS/TWMS'

URI:            '/index.py'
Location:       None
Directory:      'D:/GPS/TWMS/'
Filename:       'D:/GPS/TWMS/index.py'
PathInfo:       None

Phase:          'PythonHandler'
Handler:        'index'

Traceback (most recent call last):

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 1202, in _process_target
    module = import_module(module_name, path=path)

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 296, in import_module
    log, import_path)

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 680, in import_module
    execfile(file, module.__dict__)

  File "D:\GPS\TWMS\index.py", line 18, in <module>
    import twms

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 991, in load_module
    return _global_modules_cache.import_module(self.__file)

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 680, in import_module
    execfile(file, module.__dict__)

  File "D:\GPS\TWMS\twms.py", line 20, in <module>
    from twms.twms import *

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 991, in load_module
    return _global_modules_cache.import_module(self.__file)

  File "C:\Program Files\Python\Lib\site-packages\mod_python\importer.py", line 488, in import_module
    assert(file != parent_info.file), "Import cycle in %s." % file

AssertionError: Import cycle in D:\GPS\TWMS\twms.py.


MODULE CACHE DETAILS

Accessed:       Wed Sep 08 10:56:48 2010
Generation:     0

_mp_6223fa8d894feab9126da5b7bbe42831 {
  FileName:     'D:\\GPS\\TWMS\\index.py'
  Instance:     1 [IMPORT]
  Generation:   0 [ERROR]
  Modified:     Mon Aug 09 01:08:34 2010
  Children:     'D:\\GPS\\TWMS\\twms.py'
}

_mp_658b7967f7b6f2b6747b1490d6e62168 {
  FileName:     'D:\\GPS\\TWMS\\twms.py'
  Instance:     1 [IMPORT]
  Generation:   0 [ERROR]
  Modified:     Mon Aug 09 01:08:34 2010
}


Нутром чую, что ругается на “from twms.twms import *”.
Можно это как-то вылечить?

SoNiKa, в той доке явно написано, что mod_python больше не поддерживается. Цепляй к апачу как mod_wsgi, или вообще запускай standalone.

Насколько я помню, у меня вылечилось копированием подкаталога twms(не того, где index.py, а где __init.py, bbox.py и т.д.) в site-packages.
Уж извиняюсь, мы, русские, инструкций не читаем в принципе и всегда делаем по-своему)))

Спасибо.

Да, действительно, написано про apache + mod_wsgi. Однако это написано в подразделе Linux, который был пропущен, так как у меня это всё на Windows.

Сейчас попробуем иначе.

Ничего страшного, завести его на mod_python, в приниципе, можно и несложно. Но mod_python на каждый чих рестартит скрипт заново, не давая возможности делать рам-кеш (сейчас) и каким-то нормальным образом делать коммуникации между параллельными процессами (та самая ненавистная бага с “размытыми тайлами”)

Рекомендую сначала довести до работоспособного состояния в standalone, а уж потом цеплять к апачу.

Вроде передал на apache+mod_wsgi.
Прогресс на лицо, но не полный. Апач стал запускаться. А вот TWMS выдаёт “internal server error”.
В error логе появляется следующее:

[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1] Traceback (most recent call last):
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\web\\application.py", line 242, in process
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return self.handle()
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\web\\application.py", line 233, in handle
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return self._delegate(fn, self.fvars, args)
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\web\\application.py", line 415, in _delegate
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return handle_class(cls)
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\web\\application.py", line 390, in handle_class
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return tocall(*args)
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "D:/___www_all/twms.ru/docs/twms.py", line 47, in GET
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return handler()
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "D:/___www_all/twms.ru/docs/twms.py", line 36, in handler
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     resp, ctype, content = twms_main(data)
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "D:\\___www_all\\twms.ru\\docs\\twms\\twms.py", line 188, in twms_main
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     result_img = getimg(box,srs, (height, width), config.layers[ll], start_time, force)
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "D:\\___www_all\\twms.ru\\docs\\twms\\twms.py", line 394, in getimg
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     out = Image.new("RGBA", (x, y))
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\PIL\\Image.py", line 1763, in new
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     return Image()._new(core.fill(mode, size, color))
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]   File "C:\\Program Files\\Python 2.7\\lib\\site-packages\\PIL\\Image.py", line 37, in __getattr__
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1]     raise ImportError("The _imaging C module is not installed")
[Wed Sep 08 14:59:50 2010] [error] [client 127.0.0.1] ImportError: The _imaging C module is not installed

на запрос от JOSM`а

127.0.0.1 - - [08/Sep/2010:14:59:50 +0400] "GET /?layers=irs&bbox=30.2216561,59.8379394,30.2408080,59.8475608&srs=EPSG:4326&width=500&height=500 HTTP/1.1" 500 21

Не подскажите - куда дальше копать?

З.Ы. Установлены:
apache_httpd-2.2.16-win32-x86-openssl-0.9.8o
python-2.7
PIL-1.1.7.win32-py2.7