Вопросы по mapserver'у
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Вопросы по mapserver'у
Здравствуйте, я совсем новичок в работе с mapserver'ом, но по своей работе мне необходимо сделать wms сервер на его основе, причем так чтоб в зависимости от зума с клиента подменялись разные слои на сервере. Слои из себя представляют несколько растров размеров примерно по 60-80 мегабайт каждый.
В процессе изучения мапсервера у меня возникло несколько вопросов:
1) как я понял менять слои в зависимости от зума можно указывая minscale и maxscale у слоя, но что-то видимо я не совсем понимаю каким образом они задаются, не могли бы вы на примере подсказать и объяснить как это правильно делается?
2)тестовым образом настроив wms сервер и используя openlayer в качестве клиента я понял, что он безбожно тормозит при отображении моих растров, и тогда я задумался о том как можно оптимизировать сервер. Насколько я понимаю, можно взять растр и разрезать его на много маленьких кусочков, после gdaltindex создать по ним shp файл и использовать его как единый слой. Отсюда возникло несколько вопросов, есть ли еще способы оптимизации сервера при работе с растрами и как мне разрезать свой растр на много маленьких кусочков, ведь сейчас у меня есть растр и к нему файл привязки и если разрезать его на много маленьких кусочков, то по логике должно быть и много файлов привязок по 1 на каждый кусочек разрезанного растра. Как это можно сделать автоматически?
3) если я открою свой растр(tif) в любом вьвере картинок, то он выглядит нормально, но когда я вывожу его через мапсервер, wms или просто статическим слоем, качество изображения значительно портиться, с чем это связано и как это можно исправить?
Приношу прощения если мои вопросы звучат по глупому, но я еще совсем новичок в этом деле и нуждаюсь в помощи. Заранее благодарен.
В процессе изучения мапсервера у меня возникло несколько вопросов:
1) как я понял менять слои в зависимости от зума можно указывая minscale и maxscale у слоя, но что-то видимо я не совсем понимаю каким образом они задаются, не могли бы вы на примере подсказать и объяснить как это правильно делается?
2)тестовым образом настроив wms сервер и используя openlayer в качестве клиента я понял, что он безбожно тормозит при отображении моих растров, и тогда я задумался о том как можно оптимизировать сервер. Насколько я понимаю, можно взять растр и разрезать его на много маленьких кусочков, после gdaltindex создать по ним shp файл и использовать его как единый слой. Отсюда возникло несколько вопросов, есть ли еще способы оптимизации сервера при работе с растрами и как мне разрезать свой растр на много маленьких кусочков, ведь сейчас у меня есть растр и к нему файл привязки и если разрезать его на много маленьких кусочков, то по логике должно быть и много файлов привязок по 1 на каждый кусочек разрезанного растра. Как это можно сделать автоматически?
3) если я открою свой растр(tif) в любом вьвере картинок, то он выглядит нормально, но когда я вывожу его через мапсервер, wms или просто статическим слоем, качество изображения значительно портиться, с чем это связано и как это можно исправить?
Приношу прощения если мои вопросы звучат по глупому, но я еще совсем новичок в этом деле и нуждаюсь в помощи. Заранее благодарен.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Вопросы по mapserver'у
1. MIN/MAXSCALE устарели, нужно использовать MIN/MAXSCALEDENOM. Например:
В масштабе 1:500, 1:2000 слой будет виден. А если мельче чем 1:5000, то отключится.
2. Офф. маны Optimization.Raster. Растровые драйверы в UMN для меня полный сумрак. Есть как собственные, так и через gdal (и, кажется, еще через плагины). Читает ли он внутренние/внешние пирамиды - разберитесь и поделитесь с народом.
Правильные пацаны конечно делают красивые и быстрые WMS-ы, а лентяи берут автоматы типа GeoWebCache, GeoJazzy и т.п. (искать по кодовому слову "wms-c"). Если опробуете новенький MapProxy от Omniscale и скажете про него пару слов, то заработаете +10 в карму.
3. Связано это, вероятно, с простеньким алгоритмом линейной интерполяции и отключенным антиалиасингом.
Код: Выделить всё
LAYER
...
MAXSCALEDENOM 5000
...
END
2. Офф. маны Optimization.Raster. Растровые драйверы в UMN для меня полный сумрак. Есть как собственные, так и через gdal (и, кажется, еще через плагины). Читает ли он внутренние/внешние пирамиды - разберитесь и поделитесь с народом.
Правильные пацаны конечно делают красивые и быстрые WMS-ы, а лентяи берут автоматы типа GeoWebCache, GeoJazzy и т.п. (искать по кодовому слову "wms-c"). Если опробуете новенький MapProxy от Omniscale и скажете про него пару слов, то заработаете +10 в карму.
3. Связано это, вероятно, с простеньким алгоритмом линейной интерполяции и отключенным антиалиасингом.
лангольеры под окном жрали время ом-ном-ном
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Вопросы по mapserver'у
TMS протокол в Openlayers (Т.е. вообще без WMS сервера).Отсюда возникло несколько вопросов, есть ли еще способы оптимизации сервера при работе с растрами и как мне разрезать свой растр на много маленьких кусочков, ведь сейчас у меня есть растр и к нему файл привязки и если разрезать его на много маленьких кусочков, то по логике должно быть и много файлов привязок по 1 на каждый кусочек разрезанного растра. Как это можно сделать автоматически?
Пирамида тайлов по координатам двух углов (файлы привязки для каждого тайла не нужны).
Еще поднять скорость - кэшированием на стороне клиента.
Автоматически нарезать можно с помощью GDAL/OGR, GDI+, Global Mapper.
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Re: Вопросы по mapserver'у
Здравствуйте, спасибо за ответы. Попробовал улучшить отображения растра путем добавления в слой
PROCESSING "RESAMPLE=BILINEAR". качество изображения стало лучше, но все же очень далеко от того какое оно в вьюверах, также пробовал добавлять в слой
CLASS
STYLE
ANTIALIAS TRUE
END
END
эффекта не последовало. Может кто знает, что еще можно сделать, для улучшения качества картинки?
Заранее благодарен.
PROCESSING "RESAMPLE=BILINEAR". качество изображения стало лучше, но все же очень далеко от того какое оно в вьюверах, также пробовал добавлять в слой
CLASS
STYLE
ANTIALIAS TRUE
END
END
эффекта не последовало. Может кто знает, что еще можно сделать, для улучшения качества картинки?
Заранее благодарен.
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Re: Вопросы по mapserver'у
Не могли бы вы подробнее рассказать о пирамиде тайлов, что из себя представляет и как должна работать и как автоматически можно её сделать через gdal или дать ссылку на информацию об этом, желательно русскоязычную.Пирамида тайлов по координатам двух углов (файлы привязки для каждого тайла не нужны).
Еще поднять скорость - кэшированием на стороне клиента.
Автоматически нарезать можно с помощью GDAL/OGR, GDI+, Global Mapper.
Прошу прощения за навязчивость. Заранее благодарен.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Вопросы по mapserver'у
С антиалиасингом я, помнится, намучился достаточно. Включить его для встроенного рендера у меня так и не получилось, поэтому перешел на AGG. Примерно так:
Подключать WMS по формату PNG, для других (JPEG, GIF) будет использоваться встроенный.
Код: Выделить всё
MAP
...
OUTPUTFORMAT
NAME "png"
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGBA
EXTENSION "png"
FORMATOPTION "INTERLACE=OFF"
END
LAYER
...
END
END
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Re: Вопросы по mapserver'у
Разъясните пожалуйста, чт овы имеет ввиду под подключением WMS по формату png?Mavka писал(а): Подключать WMS по формату PNG, для других (JPEG, GIF) будет использоваться встроенный.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Вопросы по mapserver'у
Код: Выделить всё
layer = new OpenLayers.Layer.WMS('layer',
url_server + '/geoserver/wms/',
{layers: 'my_layer', format: 'image/png'},
{isBaseLayer: false}
);
P.S. Не по теме - появился OpenLayers.Layer.WMS.Post. Ё моё, где ж они раньше то были?!
лангольеры под окном жрали время ом-ном-ном
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Вопросы по mapserver'у
http://www.gdal.org/gdal_retile.html
viewtopic.php?f=30&t=3688&p=14799&hilit ... ile#p15449
http://www.slideshare.net/geosolutions/ ... -geoserver
TilingTools – набор утилит для выполнения операций с тайлами
Пример TMS
Я использую библиотеку
GDI+
По GDI+ больше документации на ru.
viewtopic.php?f=30&t=3688&p=14799&hilit ... ile#p15449
http://www.slideshare.net/geosolutions/ ... -geoserver
TilingTools – набор утилит для выполнения операций с тайлами
Пример TMS
Я использую библиотеку
GDI+
По GDI+ больше документации на ru.
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Re: Вопросы по mapserver'у
[quote="Mavka"]
Сделал как вы сказали, однако качество изображения осталось на прежнем уровне, ну т.е на том когда я ставил PROCESSING "RESAMPLE=BILINEAR" . Может у кого еще есть какие варианты как улучшить качество отображения растра в tiff формате?
Код: Выделить всё
MAP
...
OUTPUTFORMAT
NAME "png"
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGBA
EXTENSION "png"
FORMATOPTION "INTERLACE=OFF"
END
LAYER
...
END
END
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Вопросы по mapserver'у
Остальные методы пробовали?
Код: Выделить всё
PROCESSING "RESAMPLE=AVERAGE"
PROCESSING "RESAMPLE=BICUBIC"
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 17 май 2010, 16:12
- Репутация: 0
Re: Вопросы по mapserver'у
Да, пробовал. При разных RESAMPLE качество меняется, однако все равно не хватает как будто антиалиасинга, особенно если на отдалении смотреть, линии "портятся"
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Вопросы по mapserver'у
вот тут еще было обсуждение и пример с антиалиасингом
viewtopic.php?f=19&t=4123
viewtopic.php?f=19&t=4123
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 9
- Зарегистрирован: 23 апр 2011, 23:10
- Репутация: 1
Re: Вопросы по mapserver'у
По поводу несоответствия вмс оригинальному изображению. У меня такая ситуация возникала когда в исходном тифе каналы были более 8 бит на пиксел, тогда мапсервер их пытался привести к 8 битовому, но както очень странно. Он либо пытался масштабировать их до 8 бит , либо срезал значения более 8 бит. так же глюки были при нецелочисленных значениях канала. Помогло сохранение данных в 8 битовых целочисленных РГБ.
Нарезать геопривязанные растры можно при помощи gdalwarp с ключом -te , там же в случае необходимости можно поменять разрешение изображения (-tr).
Нарезать геопривязанные растры можно при помощи gdalwarp с ключом -te , там же в случае необходимости можно поменять разрешение изображения (-tr).
Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot] и 5 гостей