MapProxy + MapServer
- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
MapProxy + MapServer
Добрый день!
Есть у меня идеальная карта на MapServer, но работает медленно-медленно. Начиталась я про кеширование. Остановилась на MapProxy. Python установлен, переменные среды прописаны. MapProxy вроде бы тоже установлен, можно узнать его версию через командную строку. И даже создать какой-то сервис и увидеть его через localhost:8080/demo. Но дальше я действительно не понимаю, что делать. В документации сказано, что его нужно интегрировать в какой-нибудь веб-сервер. Можно ли его интегрировать в апачи для MapServer, чтобы не плодить веб-сервера? Если можно, то как? С MapServer проще, его апачи можно увидеть в службах, можно к нему обратить по 127.0.0.1:80, "пощупать". А с MapProxy пока тяжело.
Кто уже пользуется, напишите, пожалуйста, подробнее, как правильно довести MapProxy до применения.
			
			
									
						
										
						Есть у меня идеальная карта на MapServer, но работает медленно-медленно. Начиталась я про кеширование. Остановилась на MapProxy. Python установлен, переменные среды прописаны. MapProxy вроде бы тоже установлен, можно узнать его версию через командную строку. И даже создать какой-то сервис и увидеть его через localhost:8080/demo. Но дальше я действительно не понимаю, что делать. В документации сказано, что его нужно интегрировать в какой-нибудь веб-сервер. Можно ли его интегрировать в апачи для MapServer, чтобы не плодить веб-сервера? Если можно, то как? С MapServer проще, его апачи можно увидеть в службах, можно к нему обратить по 127.0.0.1:80, "пощупать". А с MapProxy пока тяжело.
Кто уже пользуется, напишите, пожалуйста, подробнее, как правильно довести MapProxy до применения.
- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Поделитесь кто-нибудь пожалуйста примером работающего файла yaml и строкой подключения через OpenLayers.
Спасибо
			
			
									
						
										
						Спасибо
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: MapProxy + MapServer
Сначала добейтесь того, чтобы все работало с тестовым Web-сервером MapProxy, потом уже будет деплоить его. MapProxy на входе может принимать WMS либо вызывать рендерер непосредственно. Пример непосредственного вызова рендерера:
			
			
									
						
							Код: Выделить всё
services:
  demo:
  tms:
  wms:
    md: 
      title: MapProxy WMS Server
sources:
  mapserver_src:
    type: mapserver
    req:
      layers: water,building
      map: /home/rykov/nextgis/example/wms.map
      transparent: true
    mapserver:
      binary: /usr/lib/cgi-bin/mapserv
      working_dir: /home/rykov/nextgis/example
grids:
  gridmerc:
    base: GLOBAL_MERCATOR
    srs: EPSG:3857
caches:
  ex3_cache:
    cache:
        type: mbtiles
        filename: /home/rykov/nextgis/example/mapproxy/cache_data/ex3.mbtiles
    sources: [mapserver_src]
    grids: [gridmerc]
layers:
  - name: merged_layer
    title: Пример непосредственного вызова рендерера
    sources: [ex3_cache]Spatial is now, more than ever, just another column- The Geometry Column.
			
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Спасибо! С тестовым все работает. Осталось как-то создать работающий MapProxy. Пока не могу понять, как его прикрутить к апачи. Но еще раз большое спасибо!
			
			
									
						
										
						- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: MapProxy + MapServer
А в чем проблема? в документации всё разжевано. Предположим, что вы выбрали метод деплоя с использованием mod_wsgi. Дальнейшие инструкции предполагают, что вы используете Ubuntu или Debian. Пусть директория виртуального окружения, в которое установлен MapProxy - /home/rykov/nextgis/tutorials/vega2013/mapproxy/ (директория в которой есть bin и  lib), а директория в которой хранится конфиг MapProxy - /home/rykov/nextgis/tutorials/vega2013/vegamapproxy/. Создаём wsgi-скрипт:
Устанавливаем mod_wsgi:
Переходим в директорию с настройками Apache:
Вставляем в httpd.conf следующие настройки:
Перезапускаем Apache и открываем в браузере localhost/mapproxy - должен запуститься демо-сервис MapProxy, если не работает - смотрим логи:
Если там ошибки - устраняем их. Только что проверил у себя - все завелось с первого раза.
			
			
									
						
							Код: Выделить всё
cd /home/rykov/nextgis/tutorials/vega2013/mapproxy/
source bin/activate
cd ../vegamapproxy/
mapproxy-util create -t wsgi-app -f mapproxy_ex1.yaml config.py
Код: Выделить всё
sudo apt-get install libapache2-mod-wsgi
sudo /etc/init.d/apache2 restartКод: Выделить всё
cd /etc/apache2/
Код: Выделить всё
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /mapproxy /home/rykov/nextgis/tutorials/vega2013/vegamapproxy/config.py
WSGIDaemonProcess mapproxy processes=8 threads=25
WSGIProcessGroup mapproxy
# WSGIPythonHome should contain the bin and lib dir of your virtualenv
WSGIPythonHome /home/rykov/nextgis/tutorials/vega2013/mapproxy/
WSGIApplicationGroup %{GLOBAL}
<Directory /home/rykov/nextgis/tutorials/vega2013/mapproxy/>
  Order deny,allow
  Allow from all
</Directory>Код: Выделить всё
sudo tail /var/log/apache2/error.logSpatial is now, more than ever, just another column- The Geometry Column.
			
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Спасибо за ответ!
В документации действительно все понятно. Просто когда начинаешь что-то изучать с нуля, то сначала несколько дней просто пялишься в документацию. Потом начинаешь замечать ключевые слова. Ну а когда кто-нибудь подскажет, куда конкретно нужно смотреть, то вообще прекрасно.
Кстати, я установила-таки MapProxy на Apache for MapServer. И работает!
Ежели что, то вот блок, который вставляется в httpd.conf
			
			
									
						
										
						В документации действительно все понятно. Просто когда начинаешь что-то изучать с нуля, то сначала несколько дней просто пялишься в документацию. Потом начинаешь замечать ключевые слова. Ну а когда кто-нибудь подскажет, куда конкретно нужно смотреть, то вообще прекрасно.
Кстати, я установила-таки MapProxy на Apache for MapServer. И работает!
Ежели что, то вот блок, который вставляется в httpd.conf
Код: Выделить всё
LoadModule wsgi_module modules/mod_wsgi.so
<IfModule wsgi_module>
WSGIScriptAlias /mapproxy /python27/scripts/config.py
WSGIPythonHome /python27/
WSGIApplicationGroup %{GLOBAL}
<Directory "/Python27/Scripts">
  Order deny,allow
  Allow from all
</Directory>
</IfModule>- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
А теперь, если можно, следующий вопрос.
Как заранее закешировать карту? Просто потратить время и открывать ее полностью по всем масштабам? Или есть какой-то разумный путь?
			
			
									
						
										
						Как заранее закешировать карту? Просто потратить время и открывать ее полностью по всем масштабам? Или есть какой-то разумный путь?
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: MapProxy + MapServer
Spatial is now, more than ever, just another column- The Geometry Column.
			
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Пока получаются только белые квадратики  )))
)))
Но файл запустился!!!
Спасибо!!!
			
			
									
						
										
						 )))
)))Но файл запустился!!!
Спасибо!!!
- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
А кстати, почему при увеличении масштаба генерируются только белые квадратики?
			
			
									
						
										
						- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: MapProxy + MapServer
Какие еще квадратики, что вы запрашиваете у MapServer, то он и отдает.
			
			
									
						
							Spatial is now, more than ever, just another column- The Geometry Column.
			
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Когда я открываю карту, то генерятся картинки, которые складываются в соответствующие папки кэша. Но когда я запускаю файл seed.yaml, то генерятся белые квадратики и из них только 1 картинка.
			
			
									
						
										
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Посмотрела формат отправляемого запроса. Если запрос идет через seed.yaml, то width и height тайла не 256*256, как указано в mapproxy.yaml, а неуправляемые значения. Например &height=2176&width=1857. Как установить нужные значения длины/ширины тайла в seed.yaml?
Более того. При открытии карты средствами mapproxy.yaml часть тайлов генерится с картинками, а часть остается белыми квадратиками. Mapproxy не успевает их генерить?
			
			
									
						
										
						Более того. При открытии карты средствами mapproxy.yaml часть тайлов генерится с картинками, а часть остается белыми квадратиками. Mapproxy не успевает их генерить?
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: MapProxy + MapServer
Это нормально.Посмотрела формат отправляемого запроса. Если запрос идет через seed.yaml, то width и height тайла не 256*256, как указано в mapproxy.yaml, а неуправляемые значения.
Может стоит почистить кэш браузера? "Не успевает" - такого в принципе не может быть. Удалите директорию с тайлами, в файле mapproxy.yaml для тестов измените тип кэша на file, схема tms:При открытии карты средствами mapproxy.yaml часть тайлов генерится с картинками, а часть остается белыми квадратиками. Mapproxy не успевает их генерить?
Код: Выделить всё
caches:
  ex1_cache:
    cache:
        type: file
        directory_layout: tms
    sources: [mapserver_src]
    grids: [gridmerc]Spatial is now, more than ever, just another column- The Geometry Column.
			
						- 
				BSvetlana
- Участник
- Сообщения: 69
- Зарегистрирован: 28 окт 2010, 15:51
- Репутация: 0
Re: MapProxy + MapServer
Почистила кэш и на всякий случай временные файлы интернета. И все как-то заработало!
Спасибо!
			
			
									
						
										
						Спасибо!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей
