OpenLayers : Обсуждение скрипта

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

OpenLayers : Обсуждение скрипта

Сообщение wmk » 16 апр 2009, 11:18

Господа ... возникла такая проблема:

Есть сервер (MapServer - на машине в локальной сети) и есть клиент на OpenLayers ... и собственно вся проблема заключается в том , что OpenLayers открывает карту ну просто возмутительно долго и при этом прокачивает нереально много трафика (за один zoom ... порядка 300-400 кб) ... хотя если открыть WMS в QGIS например, то он получает картинку очень быстро и с меньшими затратами трафика.

Соответственно возникли такие вопросы :
  • Где копать .. Может быть проблема всё таки в WMS ???
  • Можно ли каким то образом оптимизировать работу OpenLayers'а
  • Есть ли варианты с использованием других клиентов (можно и платных) ...
Если у кого то стояла такая проблема то помогите please !!! ОООООЧень надо

Карта выглядит примерно так (width:700 , height:500 , tileSize - стандартный) ... и генерится она из 4-х шейпов

Изображение
Последний раз редактировалось wmk 14 май 2009, 12:29, всего редактировалось 1 раз.
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение KolesovDmitry » 16 апр 2009, 12:06

wmk писал(а): Есть сервер (MapServer - на машине в локальной сети) и есть клиент на OpenLayers ...
Соответственно возникли такие вопросы :
  • ...
  • Можно ли каким то образом оптимизировать работу OpenLayers'а
  • Есть ли варианты с использованием других клиентов (можно и платных) ...
Если у кого то стояла такая проблема то помогите please !!! ОООООЧень надо
  • 2) Можно поотключать лишние модули у OL - будет меньше грузиться.

    3) Есть еще msCross, только у них вроде как уже год с лишним никаких обновлений не выходит (или это я просто не в курсах?).
    Конкретно под MapServer можно писать на MapScript - у MS хорошо документированный API и множество языков программирования, предназначенных для работы с ним. Поэтому можно покопать в этом направлении. Кстати, здесь есть несколько ссылок на разные ресурсы, облегчающие разработку приложений на MS.

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение wmk » 16 апр 2009, 12:42

Ну честно говоря да ... меня посетила та же мысль (написание своего клиента) ... но не хотелось бы (слишком долго :( ) ... А если надумаю то там наверное не будет участвовать мапсервер или мапскрипт (для того чтоб можно было разместить на обычном хостинге). Возможно буду писать на JS с JQuery ... тем более что есть кое какие наброски.

А по поводу msCross ... это немного не то , нужен клиент как у Яндекс.карт (максимально похожий) ... поэтому и выбрал OpenLayers.

... Спасибо за помощь! Жду комментариев :)
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение bim2010 » 17 апр 2009, 00:36

OpenLayers открывает карту ну просто возмутительно долго и при этом прокачивает нереально много трафика (за один zoom ... порядка 300-400 кб).
Вы сами ответили на свой вопрос. Причем тут OL? Если грузится 400 кб?
OL не причем. Копайте в сторону WMS – там проблема.
Смотрим например на GoogleMap. При полном развороте карты на экран картинка + вектор около 250 кб. Один квадратик у GM весит 7,5 кб. + вектор сверху 1-1.5 кб.
При вашем варианте размера окна должно грузится около 100 – 120 кб.
Тестируем примеры WMS
http://www.openlayers.org/dev/examples/wms-untiled.html -Расходы на зум 20 кб
http://www.openlayers.org/dev/examples/wms.html - Расходы на зум 270 кб
http://www.openlayers.org/dev/examples/wmst.html - Расходы на зум 450 кб
http://www.openlayers.org/dev/examples/lite.html - Расходы на зум 45 кб
http://www.openlayers.org/dev/examples/mapserver.html - Расходы на зум 260 кб
http://www.openlayers.org/dev/examples/ ... tiled.html - Расходы на зум 120 кб полоноэкранный режим !!!
Смотрим на реально работающий Live interaction with UMN Mapserver: WMS mapping services.
http://212.101.17.161/en/Nawa/index.html - Расходы на зум 360 кб
http://carolinasrcoos.org/intmap.php?tab=4 - Расходы на зум до 250 кб но кеширование выполнено очень прилично (шаг назад по зуму < 10кб)
http://www.igmi.org/ware/ - Расходы на зум 1200 кб
http://www.archeoserver.it/pobasyn/webgis/index.php - Расходы на зум 1700 кб
Нет такой хоккей нам не нужен!
Вы писали:
Хотя если открыть WMS в QGIS например, то он получает картинку очень быстро и с меньшими затратами трафика.
Интересное замечание. Почему бы Вам в качестве WMS сервера не использовать QGIS? Напишите когда протестируете сборку QGIS +OL.
Еще наверное, вам надо разобраться с кешированием как на стороне сервера так и в OL.
Можно поотключать лишние модули у OL - будет меньше грузиться.
Согласен с KolesovDmitry наверняка мы используем меньше половины OL.
Да на сайте OL есть исходники. Как вот только из этой кучи файлов выбрать то, что используется у меня? Автосборки модулей не вижу. Только вручную все перекопав?
Выигрыш будет разовый при первой загрузке вашей страницы.
Соответственно возникли такие вопросы :
• Где копать .. Может быть проблема всё таки в WMS ???
• Можно ли каким то образом оптимизировать работу OpenLayers'а
• Есть ли варианты с использованием других клиентов (можно и платных) ...
Копаю здесь
http://www.freegis.org/database/?cat=9& ... 30qN1ASi6o
http://www.freegis.org/database/?cat=75 ... 30qN1ASi6o
http://www.freegis.org/database/?cat=55 ... 30qN1ASi6o
http://trac.mapfish.org/trac/mapfish/wiki
Карта выглядит примерно так (width:700 , height:500 , tileSize - стандартный) ... и генерится она из 4-х шейпов
Вопрос: а хорошо ли, правильно ли грузить в MS из шейп-файлов? То, что MS позволяет загружать шейпы или .MIF не означает что он это делает хорошо.
А что геокодинг Вы не собираетесь делать? Мне кажется по любому надо все данные хранить в СУБД.
А в чем вы изначально рисовали город? Не в ARCGIS?
http://www.openlayers.org/dev/examples/ ... 3rest.html
Изменение зума около 100 кб
http://www.openlayers.org/dev/examples/xyz-esri.html
А здесь классное кеширование.
Кроме этого у меня еще проблема с хостингом. Поэтому ищу WMS for PHP.
http://www.easywms.com/
http://www.sogis1.so.ch/sogis/wms/http/
http://www.sogis1.so.ch/sogis/projekte/kva/beta/
Наиболее свежий SUAS MapServer http://www.easywms.com/ (декабрь 2007)
Связка с Openlayers в наличии. Может кто уже изучал эти сервера? Есть какое мнение?
Может кто знает свежие WMS for PHP?
Идея отказатся от WMS у меня была изначально – TMS протокол в Openlayers.
Отказываться от OL пока не собираюсь. Не смотря на его недостатки
viewtopic.php?f=19&t=2906
лучше пока не наблюдаю.

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение wmk » 20 апр 2009, 09:51

bim2010 писал(а): http://www.openlayers.org/dev/examples/xyz-esri.html
А здесь классное кеширование.
Возникает вопрос , а в Mapserver и OpenLayers есть встроенные ф-ии кэширования ???
Я так понимаю в приведенной ссылке стоит ArcGIS сервер.
bim2010 писал(а): Вы сами ответили на свой вопрос. Причем тут OL? Если грузится 400 кб?
OL не причем. Копайте в сторону WMS – там проблема.
Смотрим например на GoogleMap. При полном развороте карты на экран картинка + вектор около 250 кб. Один квадратик у GM весит 7,5 кб. + вектор сверху 1-1.5 кб.
Для примера привожу тайл со своего сервера mapserv.png 3,97 КБ (4 069 байт)
Средний размер от 1 до 10 КБ...
Исходя из этого вообще непонятно откуда он берет 400 кил.

Кстати по поводу WMS серверов:
bim2010 писал(а): Вопрос: а хорошо ли, правильно ли грузить в MS из шейп-файлов? То, что MS позволяет загружать шейпы или .MIF не означает что он это делает хорошо.
А что бы Вы посоветовали использовать ... какой сервер ???
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

godnik
Активный участник
Сообщения: 107
Зарегистрирован: 23 окт 2007, 19:20
Репутация: 13
Откуда: Москва
Контактная информация:

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение godnik » 21 апр 2009, 14:29

К OL есть (были) претензии по скорости. Тут проблема может быть не только в WMS. Мы сами когда-то на нем сделали интерфейс карты, потом все равно переписали все сами.
Хотя, на OSM вот работает быстро, наверное ее можно заточить :? .

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : СКОРОСТЬ ОТОБРАЖЕНИЯ КАРТЫ

Сообщение wmk » 21 апр 2009, 16:35

Ну вот кстати попробовал поставить TileCache и о чудо ...
  • скорость стала приличной
  • кэширование на уровне
  • тормозов стало меньше
Только встала одна проблемка ... настройка TileCache под мой WMS ...

Если у кого есть опыт в настройке то пишем здесь:
viewtopic.php?f=19&t=3195
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: OpenLayers : скорость отображения карты

Сообщение bim2010 » 22 апр 2009, 21:05

Ну вот кстати попробовал поставить TileCache и о чудо ...
Это Вы с OpenLayers разобрались ?

Вариант:
http://sourceforge.net/projects/geowebcache/
GeoWebCache is a WMS tile cache that lets you serve cached map data to WMS clients, Goole Earth, Google Maps and MS Virtual Earth. The system is pluggable on both ends and does automatic matching to the best available tile. It is very fast and scalable.

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : скорость отображения карты

Сообщение wmk » 14 май 2009, 12:21

Господа такой вопрос:

Кто нибудь занимался оптимизацией OpenLayers ???
или вообще кто нибудь работает на OL ???


Если "ДА" то давайте обсудим какие проблемы есть и как их исправить ... ну собственно всем лучше будет :D
Определим вопросы и коллективно решим.


Ну и первый вопрос :

1. Когда карта приближается колесом мышки с zoom=0 до zoom=8 то соответственно прогружаются все уровни. Вопрос в том как этого избежать или как оптимизировать
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

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

Re: OpenLayers : Обсуждение скрипта

Сообщение Konstantin Tokar » 16 май 2009, 18:12

Насчёт большого размера и тормозов. Размер - скорее всего это бордюр. При размере как у Вас карты 3х3=9 тиля грузится 5*5=25. Проверить это можно в firebug .

Надо ещё посмотреть на форматы картинок. Вообще OL тормозит заметно только при > нескольких сотнях выводимых объектов, что для большинства пользователей нетипично.

Ну и, имея исходники, именно в них я находил решение всех возникающих проблем.

При зуме мышью у меня не грузятся лишние фрагменты. Возможно, где-то настраивается скорость зума (задержка) или разные мыши при зуме генерят разные сигналы?

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : Обсуждение скрипта

Сообщение wmk » 16 май 2009, 18:22

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

Да и вот по поводу оптимизации OL , Вы пробовали ей заниматся ???
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

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

Re: OpenLayers : Обсуждение скрипта

Сообщение Konstantin Tokar » 16 май 2009, 19:11

wmk писал(а):
Да и вот по поводу оптимизации OL , Вы пробовали ей заниматся ???
Нет - и не буду, а зачем? Ничего лишнего он для меня не делает. Правда, я использую довольно много из его функционала. С проблемами производительности я столкнулся только когда вывел >500 точечных объектов-картинок и много векторных путей, да и то это в IE6 которого скоро не будет.

Единственное что я делал - убрал бордюр (не помню как точно называется, это тили вокруг карты для быстрого перемещения по карте) и настроил синонимы для моего мапсервера для того, чтобы преодолеть ограничение на количество параллельных сессий браузера к одному DNS имени. Привёл в соответствие шкалу зумирования OL и Tilecache. Ещё свои плавающие подсказки сделал, но наверно зря.

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : Обсуждение скрипта

Сообщение wmk » 16 май 2009, 19:24

Единственное что я делал - убрал бордюр (не помню как точно называется, это тили вокруг карты для быстрого перемещения по карте) и настроил синонимы для моего мапсервера для того, чтобы преодолеть ограничение на количество параллельных сессий браузера к одному DNS имени. Привёл в соответствие шкалу зумирования OL и Tilecache. Ещё свои плавающие подсказки сделал, но наверно зря.
Ну бордер да он у меня настроен на кэширование ... а вот по поводу ограничения на кол-во сессий к одному DNS ... не могли бы про это подробно.
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

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

Re: OpenLayers : Обсуждение скрипта

Сообщение Konstantin Tokar » 16 май 2009, 20:44

Если есть бордюр, то особенно удивляться трафику не стоит.

Браузеры имеют ограничение на количество сессий к одному серверу (DNS имени), порядка 10-ти штук, поэтому закачка тилей будет идти не всех сразу, а по 10 штук. Если тили на разных слоях разложить по разным CNAME, то будет заметно быстрее на хороших сетях. Вроде бы OL последней версии имеет поддержку такого поведения - можно указать несколько источников картинок.

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

Re: OpenLayers : Обсуждение скрипта

Сообщение wmk » 18 май 2009, 10:10

... Если тили на разных слоях разложить по разным CNAME, то будет заметно быстрее на хороших сетях. Вроде бы OL последней версии имеет поддержку такого поведения - можно указать несколько источников картинок.
Не совсем понял что значит "указать несколько источников" Вы имеете ввиду это ???
var KaMap1 = new OpenLayers.Layer.KaMap( "KaMap", "http://localhost/kamap1/tile.php?", {map: "gmap",i: 'gif'});
var KaMap2 = new OpenLayers.Layer.KaMap( "KaMap", "http://localhost/kamap2/tile.php?", {map: "gmap",i: 'gif'});

map.addLayers([KaMap1,KaMap2]);
Если не сложно не могли бы выложить кусочек кода.
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

Ответить

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

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

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