Страница 1 из 1
Вопросы по mapserver'у
Добавлено: 17 май 2010, 16:36
jeveloper
Здравствуйте, я совсем новичок в работе с mapserver'ом, но по своей работе мне необходимо сделать wms сервер на его основе, причем так чтоб в зависимости от зума с клиента подменялись разные слои на сервере. Слои из себя представляют несколько растров размеров примерно по 60-80 мегабайт каждый.
В процессе изучения мапсервера у меня возникло несколько вопросов:
1) как я понял менять слои в зависимости от зума можно указывая minscale и maxscale у слоя, но что-то видимо я не совсем понимаю каким образом они задаются, не могли бы вы на примере подсказать и объяснить как это правильно делается?
2)тестовым образом настроив wms сервер и используя openlayer в качестве клиента я понял, что он безбожно тормозит при отображении моих растров, и тогда я задумался о том как можно оптимизировать сервер. Насколько я понимаю, можно взять растр и разрезать его на много маленьких кусочков, после gdaltindex создать по ним shp файл и использовать его как единый слой. Отсюда возникло несколько вопросов, есть ли еще способы оптимизации сервера при работе с растрами и как мне разрезать свой растр на много маленьких кусочков, ведь сейчас у меня есть растр и к нему файл привязки и если разрезать его на много маленьких кусочков, то по логике должно быть и много файлов привязок по 1 на каждый кусочек разрезанного растра. Как это можно сделать автоматически?
3) если я открою свой растр(tif) в любом вьвере картинок, то он выглядит нормально, но когда я вывожу его через мапсервер, wms или просто статическим слоем, качество изображения значительно портиться, с чем это связано и как это можно исправить?
Приношу прощения если мои вопросы звучат по глупому, но я еще совсем новичок в этом деле и нуждаюсь в помощи. Заранее благодарен.
Re: Вопросы по mapserver'у
Добавлено: 17 май 2010, 17:19
Mavka
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. Связано это, вероятно, с простеньким алгоритмом линейной интерполяции и отключенным антиалиасингом.
Re: Вопросы по mapserver'у
Добавлено: 17 май 2010, 19:33
bim2010
Отсюда возникло несколько вопросов, есть ли еще способы оптимизации сервера при работе с растрами и как мне разрезать свой растр на много маленьких кусочков, ведь сейчас у меня есть растр и к нему файл привязки и если разрезать его на много маленьких кусочков, то по логике должно быть и много файлов привязок по 1 на каждый кусочек разрезанного растра. Как это можно сделать автоматически?
TMS протокол в Openlayers (Т.е. вообще без WMS сервера).
Пирамида тайлов по координатам двух углов (файлы привязки для каждого тайла не нужны).
Еще поднять скорость - кэшированием на стороне клиента.
Автоматически нарезать можно с помощью GDAL/OGR, GDI+, Global Mapper.
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 14:26
jeveloper
Здравствуйте, спасибо за ответы. Попробовал улучшить отображения растра путем добавления в слой
PROCESSING "RESAMPLE=BILINEAR". качество изображения стало лучше, но все же очень далеко от того какое оно в вьюверах, также пробовал добавлять в слой
CLASS
STYLE
ANTIALIAS TRUE
END
END
эффекта не последовало. Может кто знает, что еще можно сделать, для улучшения качества картинки?
Заранее благодарен.
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 14:41
jeveloper
Пирамида тайлов по координатам двух углов (файлы привязки для каждого тайла не нужны).
Еще поднять скорость - кэшированием на стороне клиента.
Автоматически нарезать можно с помощью GDAL/OGR, GDI+, Global Mapper.
Не могли бы вы подробнее рассказать о пирамиде тайлов, что из себя представляет и как должна работать и как автоматически можно её сделать через gdal или дать ссылку на информацию об этом, желательно русскоязычную.
Прошу прощения за навязчивость. Заранее благодарен.
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 15:33
Mavka
С антиалиасингом я, помнится, намучился достаточно. Включить его для встроенного рендера у меня так и не получилось, поэтому перешел на AGG. Примерно так:
Код: Выделить всё
MAP
...
OUTPUTFORMAT
NAME "png"
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGBA
EXTENSION "png"
FORMATOPTION "INTERLACE=OFF"
END
LAYER
...
END
END
Подключать WMS по формату PNG, для других (JPEG, GIF) будет использоваться встроенный.
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 17:07
jeveloper
Mavka писал(а):
Подключать WMS по формату PNG, для других (JPEG, GIF) будет использоваться встроенный.
Разъясните пожалуйста, чт овы имеет ввиду под подключением WMS по формату png?
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 17:14
Mavka
Код: Выделить всё
layer = new OpenLayers.Layer.WMS('layer',
url_server + '/geoserver/wms/',
{layers: 'my_layer', format: 'image/png'},
{isBaseLayer: false}
);
В QGis в окне подключения к WMS есть переключатель форматов.
P.S. Не по теме - появился
OpenLayers.Layer.WMS.Post. Ё моё, где ж они раньше то были?!
Re: Вопросы по mapserver'у
Добавлено: 19 май 2010, 20:36
bim2010
Re: Вопросы по mapserver'у
Добавлено: 21 май 2010, 13:31
jeveloper
[quote="Mavka"]
Код: Выделить всё
MAP
...
OUTPUTFORMAT
NAME "png"
DRIVER AGG/PNG
MIMETYPE "image/png"
IMAGEMODE RGBA
EXTENSION "png"
FORMATOPTION "INTERLACE=OFF"
END
LAYER
...
END
END
Сделал как вы сказали, однако качество изображения осталось на прежнем уровне, ну т.е на том когда я ставил
PROCESSING "RESAMPLE=BILINEAR" . Может у кого еще есть какие варианты как улучшить качество отображения растра в tiff формате?
Re: Вопросы по mapserver'у
Добавлено: 21 май 2010, 14:11
Mavka
Остальные методы пробовали?
Код: Выделить всё
PROCESSING "RESAMPLE=AVERAGE"
PROCESSING "RESAMPLE=BICUBIC"
Re: Вопросы по mapserver'у
Добавлено: 21 май 2010, 15:12
jeveloper
Да, пробовал. При разных RESAMPLE качество меняется, однако все равно не хватает как будто антиалиасинга, особенно если на отдалении смотреть, линии "портятся"
Re: Вопросы по mapserver'у
Добавлено: 21 май 2010, 16:41
Максим Дубинин
вот тут еще было обсуждение и пример с антиалиасингом
viewtopic.php?f=19&t=4123
Re: Вопросы по mapserver'у
Добавлено: 23 апр 2011, 23:25
alma.azik
По поводу несоответствия вмс оригинальному изображению. У меня такая ситуация возникала когда в исходном тифе каналы были более 8 бит на пиксел, тогда мапсервер их пытался привести к 8 битовому, но както очень странно. Он либо пытался масштабировать их до 8 бит , либо срезал значения более 8 бит. так же глюки были при нецелочисленных значениях канала. Помогло сохранение данных в 8 битовых целочисленных РГБ.
Нарезать геопривязанные растры можно при помощи gdalwarp с ключом -te , там же в случае необходимости можно поменять разрешение изображения (-tr).