MapServer+OpenLayers. ускорение работы

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

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

2. на карте есть слой с фоном и слой с треками, которые я строю по точкам и которые все время разные. Но проблема в том, что при приближении OpenLayers восстанавливает из кеша старые данные, треки обновляются только на первом приближении. Как быть в таком случае?
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

1. По возможности уменьшить количество слоев.
Существенно повысить скорость можно с кэширующим сервером (WMS-C).

2. Слой с треками сделайте векторным. Они в каком формате храняться?
лангольеры под окном жрали время ом-ном-ном
Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

Re: MapServer+OpenLayers. ускорение работы

Сообщение Konstantin Tokar »

Раз обновляются один раз - значит http сервер возвращает срок жизни картинок ненулевой. Для карт это правильно, а для динамично изменяющихся слоёв надо поставить отсутствие кэширования.
И делайте карту тилями 256х256, а трэки одним куском.

Кстати, я не знаю - а тили могут быть разного размера на разных слоях одной карты? В OL 2.6 я пробовал и нарвался на глюки.
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

все хранится в векторном формате, mapserver + postgis.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

Настройте MapServer на вывод трэков через WFS. А в OpenLayers подключите
слой через OpenLayers.Layer.WFS. Это может помочь с проблемами кэширования
и скоростью загрузки.

Я так понял у вас два слоя. Подложка (базовый) и слой с трэками (transparency)?
Если слой прозрачный, то он в формате png с 32 битами на пиксель, это не мало.
лангольеры под окном жрали время ом-ном-ном
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

слоев сейчас больше, подложка (растр) и векторные слои домов улиц и треков, была проблема с extend - когда ее убрал, сервер начал чуть быстрее работать, но все равно тормоза остались. Сейчас пока сервер стоит на виртуальной машине, и то когда я, например, изменяю масштаб, надо ждать 3-5 секунд, пока он отрисует... что же будет когда на него залезут сразу 100 человек, не говоря уже про 1000...

попробую перевести на WFS, правда с ним пока не сталкивался, придется разбираться.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

Соберите все что только можно в один слой - подложку, дома, улицы.
И поставьте сервер WMS-C.
лангольеры под окном жрали время ом-ном-ном
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

поставил WMS-C, не получилось нормально его сконфигурировать...
добавил в нем слой:

Код: Выделить всё

<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 );
и на экране куча розовых тайтлов, тоже самое если http://localhost:8080/geowebcache/demo попытаться сгенерировать слой в openlayers
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

Щелкните право кнопкой по розовому тайлу, выберите "скопировать адрес изображения".
1. Вдумчиво посмотрите на адрес, какие там параметры, все ли так как должно быть.
2. Откройте этот адрес в браузере, GWC скажет вам что не так.
3. Посмотрите логи Apache, что приходит на MapServer и что уходит обратно.

P.S. Обязательно указывайте название программы и ее версию, а не просто WMS-C.
лангольеры под окном жрали время ом-ном-ном
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

адрес рисунка:
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. ускорение работы

Сообщение Mavka »

Я ничего криминального не вижу... Что скажет браузер на этот запрос?
лангольеры под окном жрали время ом-ном-ном
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

он говорит: msWFSDispatch(): WFS server error. Incomplete WFS request: SERVICE parameter missing
все - понял в чем дело, перед service в запросе стоит "?" только пока не пойму где его убрать :)
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

все - понял в чем дело, перед service в запросе стоит "?"
У меня с "&?"работает успешно. Появились они в настройках GWC:

Код: Выделить всё

<wmsUrl>
    <string>http://vmadmin/cgi-bin/mapserv.exe?map=/ms4w/apps/minsk/bnz_test.map&</string>
</wmsUrl> 
Последний "&" он и есть. А знак вопроса добавляется автоматически.
Последний раз редактировалось Mavka 17 сен 2009, 14:02, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
dixgrey
Интересующийся
Сообщения: 32
Зарегистрирован: 22 июл 2009, 10:45
Репутация: 0
Контактная информация:

Re: MapServer+OpenLayers. ускорение работы

Сообщение dixgrey »

если я пишу ...bnz_test.map&SERVICE=WMS&REQ... тайтл рисует,
если /apps/minsk/bnz_test.map&?SERVICE=WMS&REQ - выдает ошибку
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer+OpenLayers. ускорение работы

Сообщение Mavka »

Тогда попробуй убрать "&"
лангольеры под окном жрали время ом-ном-ном
Ответить

Вернуться в «Веб-картография»

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

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