MapServer+OpenLayers. ускорение работы
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
MapServer+OpenLayers. ускорение работы
подскажите новичку...
1. карта строится, как мне кажется, не очень быстро. какие начальные шаги надо делать и на что обратить внимание, для создания более оптимального проекта? можно ли добится таких скоростей, как на googlemaps?
2. на карте есть слой с фоном и слой с треками, которые я строю по точкам и которые все время разные. Но проблема в том, что при приближении OpenLayers восстанавливает из кеша старые данные, треки обновляются только на первом приближении. Как быть в таком случае?
1. карта строится, как мне кажется, не очень быстро. какие начальные шаги надо делать и на что обратить внимание, для создания более оптимального проекта? можно ли добится таких скоростей, как на googlemaps?
2. на карте есть слой с фоном и слой с треками, которые я строю по точкам и которые все время разные. Но проблема в том, что при приближении OpenLayers восстанавливает из кеша старые данные, треки обновляются только на первом приближении. Как быть в таком случае?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
1. По возможности уменьшить количество слоев.
Существенно повысить скорость можно с кэширующим сервером (WMS-C).
2. Слой с треками сделайте векторным. Они в каком формате храняться?
Существенно повысить скорость можно с кэширующим сервером (WMS-C).
2. Слой с треками сделайте векторным. Они в каком формате храняться?
лангольеры под окном жрали время ом-ном-ном
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: MapServer+OpenLayers. ускорение работы
Раз обновляются один раз - значит http сервер возвращает срок жизни картинок ненулевой. Для карт это правильно, а для динамично изменяющихся слоёв надо поставить отсутствие кэширования.
И делайте карту тилями 256х256, а трэки одним куском.
Кстати, я не знаю - а тили могут быть разного размера на разных слоях одной карты? В OL 2.6 я пробовал и нарвался на глюки.
И делайте карту тилями 256х256, а трэки одним куском.
Кстати, я не знаю - а тили могут быть разного размера на разных слоях одной карты? В OL 2.6 я пробовал и нарвался на глюки.
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
все хранится в векторном формате, mapserver + postgis.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
Настройте MapServer на вывод трэков через WFS. А в OpenLayers подключите
слой через OpenLayers.Layer.WFS. Это может помочь с проблемами кэширования
и скоростью загрузки.
Я так понял у вас два слоя. Подложка (базовый) и слой с трэками (transparency)?
Если слой прозрачный, то он в формате png с 32 битами на пиксель, это не мало.
слой через OpenLayers.Layer.WFS. Это может помочь с проблемами кэширования
и скоростью загрузки.
Я так понял у вас два слоя. Подложка (базовый) и слой с трэками (transparency)?
Если слой прозрачный, то он в формате png с 32 битами на пиксель, это не мало.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
слоев сейчас больше, подложка (растр) и векторные слои домов улиц и треков, была проблема с extend - когда ее убрал, сервер начал чуть быстрее работать, но все равно тормоза остались. Сейчас пока сервер стоит на виртуальной машине, и то когда я, например, изменяю масштаб, надо ждать 3-5 секунд, пока он отрисует... что же будет когда на него залезут сразу 100 человек, не говоря уже про 1000...
попробую перевести на WFS, правда с ним пока не сталкивался, придется разбираться.
попробую перевести на WFS, правда с ним пока не сталкивался, придется разбираться.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
Соберите все что только можно в один слой - подложку, дома, улицы.
И поставьте сервер WMS-C.
И поставьте сервер WMS-C.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
поставил WMS-C, не получилось нормально его сконфигурировать...
добавил в нем слой:
открываю его:
и на экране куча розовых тайтлов, тоже самое если http://localhost:8080/geowebcache/demo попытаться сгенерировать слой в openlayers
добавил в нем слой:
Код: Выделить всё
<wmsLayer>
<name>Rt_rt</name>
<mimeFormats>
<string>image/png</string>
<string>image/jpeg</string>
</mimeFormats>
<grids>
<entry>
<srs>
<number>4326</number>
</srs>
<grid>
<srs>
<number>4326</number>
</srs>
<dataBounds>
<coords>
<double>27.04068</double>
<double>55.627801</double>
<double>27.055416</double>
<double>55.639571</double>
</coords>
</dataBounds>
<gridBounds>
<coords>
<double>-180.0</double>
<double>-90.0</double>
<double>180.0</double>
<double>90.0</double>
</coords>
</gridBounds>
<zoomStart>5</zoomStart>
<zoomStop>20</zoomStop>
</grid>
</entry>
</grids>
<wmsUrl>
<string>http://vmadmin/cgi-bin/mapserv.exe?map=/ms4w/apps/minsk/bnz_test.map&</string>
</wmsUrl>
<wmsLayers>Rt_rt</wmsLayers>
<transparent>true</transparent>
</wmsLayer>
Код: Выделить всё
var mapurl="http://vmadmin:8080/geowebcache/service/wms";
var layer = new OpenLayers.Layer.WMS("Minsk",
mapurl, {layers: 'Rt_rt', format: 'png'}, options );
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
Щелкните право кнопкой по розовому тайлу, выберите "скопировать адрес изображения".
1. Вдумчиво посмотрите на адрес, какие там параметры, все ли так как должно быть.
2. Откройте этот адрес в браузере, GWC скажет вам что не так.
3. Посмотрите логи Apache, что приходит на MapServer и что уходит обратно.
P.S. Обязательно указывайте название программы и ее версию, а не просто WMS-C.
1. Вдумчиво посмотрите на адрес, какие там параметры, все ли так как должно быть.
2. Откройте этот адрес в браузере, GWC скажет вам что не так.
3. Посмотрите логи Apache, что приходит на MapServer и что уходит обратно.
P.S. Обязательно указывайте название программы и ее версию, а не просто WMS-C.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
адрес рисунка:
http://localhost:8080/geowebcache/servi ... HEIGHT=256
броузер возвращает: 400: Empty metatile, error message: MimeType mismatch, expected image/png but got text/xml from http://vmadmin/cgi-bin/mapserv.exe?map= ... 5751953125 null
geowebcache-1.1.3
jetty-6.1.19
на апач приходит "GET /cgi-bin/mapserv.exe?map=/ms4w/apps/minsk/bnz_test.map&?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&LAYERS=Rt_rt&EXCEPTIONS=application/vnd.ogc.se_inimage&STYLES=&TRANSPARENT=TRUE&FORMAT=image/png&SRS=EPSG:4326&WIDTH=512&HEIGHT=768&BBOX=27.04833984375,55.61279296875,27.059326171875,55.6292724609375 HTTP/1.1" 200 552"
http://localhost:8080/geowebcache/servi ... HEIGHT=256
броузер возвращает: 400: Empty metatile, error message: MimeType mismatch, expected image/png but got text/xml from http://vmadmin/cgi-bin/mapserv.exe?map= ... 5751953125 null
geowebcache-1.1.3
jetty-6.1.19
на апач приходит "GET /cgi-bin/mapserv.exe?map=/ms4w/apps/minsk/bnz_test.map&?SERVICE=WMS&REQUEST=GetMap&VERSION=1.1.0&LAYERS=Rt_rt&EXCEPTIONS=application/vnd.ogc.se_inimage&STYLES=&TRANSPARENT=TRUE&FORMAT=image/png&SRS=EPSG:4326&WIDTH=512&HEIGHT=768&BBOX=27.04833984375,55.61279296875,27.059326171875,55.6292724609375 HTTP/1.1" 200 552"
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
Я ничего криминального не вижу... Что скажет браузер на этот запрос?
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
он говорит: msWFSDispatch(): WFS server error. Incomplete WFS request: SERVICE parameter missing
все - понял в чем дело, перед service в запросе стоит "?" только пока не пойму где его убрать
все - понял в чем дело, перед service в запросе стоит "?" только пока не пойму где его убрать

- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
У меня с "&?"работает успешно. Появились они в настройках GWC:все - понял в чем дело, перед service в запросе стоит "?"
Код: Выделить всё
<wmsUrl>
<string>http://vmadmin/cgi-bin/mapserv.exe?map=/ms4w/apps/minsk/bnz_test.map&</string>
</wmsUrl>
Последний раз редактировалось Mavka 17 сен 2009, 14:02, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 32
- Зарегистрирован: 22 июл 2009, 10:45
- Репутация: 0
- Контактная информация:
Re: MapServer+OpenLayers. ускорение работы
если я пишу ...bnz_test.map&SERVICE=WMS&REQ... тайтл рисует,
если /apps/minsk/bnz_test.map&?SERVICE=WMS&REQ - выдает ошибку
если /apps/minsk/bnz_test.map&?SERVICE=WMS&REQ - выдает ошибку
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: MapServer+OpenLayers. ускорение работы
Тогда попробуй убрать "&"
лангольеры под окном жрали время ом-ном-ном
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей