Страница 1 из 1

MapServer - Сглаживание

Добавлено: 23 окт 2009, 07:44
1div
Рисую карту через MapServer из shp файлов.
Но картинка получается какая-то угловатая.

Каким образом можно включить сглаживание?

Re: MapServer - Сглаживание

Добавлено: 23 окт 2009, 09:43
Mavka
В новостях недавно была заметка про AGG, оригинальный блог уже не работает, но в кэше еще есть. Ну и доки к самому UMN, раздел 8.2 (там же, в самом начале рекомендуют AGG).

Re: MapServer - Сглаживание

Добавлено: 23 окт 2009, 11:48
1div
Mavka, большое спасибо! :) разобрался!

Re: MapServer - Сглаживание

Добавлено: 23 янв 2010, 15:15
dobeer
У меня почемуто не получается сделать сглаживание. Пробовал вставлять в мар файл:

OUTPUTFORMAT
NAME 'AGG_Q'
DRIVER AGG/PNG
IMAGEMODE RGB
FORMATOPTION "QUANTIZE_FORCE=ON"
FORMATOPTION "QUANTIZE_DITHER=OFF"
FORMATOPTION "QUANTIZE_COLORS=256"
END

и...

OUTPUTFORMAT
#utilizado quando é incluido um layer do tipo raster
NAME png2
MIMETYPE image/png
DRIVER GD/PNG
EXTENSION png
IMAGEMODE PC256
TRANSPARENT FALSE
FORMATOPTION "INTERLACE=OFF"
END

Но ни то ни другое не дало никаких изменений так и осталось все угловатое, помогите у кого получилось :(

Re: MapServer - Сглаживание

Добавлено: 23 янв 2010, 19:01
Максим Дубинин
версия MS? Есть ли AGG в выводе mapserv -v?
попробуйте ANTIALIASING TRUE
пример: http://gis-lab.info/programs/mapserver/ ... moscow.htm

Re: MapServer - Сглаживание

Добавлено: 24 янв 2010, 19:51
dobeer
версия:
****************************
MapServer for Windows (MS4W)
****************************
:Author: Jeff McKenna, `Gateway Geomatics`_
:Contact: `Mailing List`_
:Revision: $Revision: 1.57 $
:Last Updated: $Date: 2008/12/03 01:00:02 $
ANTIALIASING TRUE дает эффект "красных квадратов"
Запрос к картинке дает - loadOutputFormat(): Unknown identifier. Parsing error near (ANTIALIASING):(line 27)
как проверить есть ли AGG в выводе mapserv -v

Re: MapServer - Сглаживание

Добавлено: 24 янв 2010, 20:03
Максим Дубинин
dobeer писал(а):как проверить есть ли AGG в выводе mapserv -v
Запустить mapserv.exe -v

ANTIALIAS TRUE
Пример: http://gis-lab.info/programs/mapserver/ ... moscow.map

Re: MapServer - Сглаживание

Добавлено: 24 янв 2010, 23:02
dobeer
ANTIALIAS TRUE прописан как в примере, AGG есть при выводе "mapserv -v"
вот мар:

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

MAP
  NAME           "WMS"
  EXTENT          ##.18559 ##.93118 ##.67244 ##.16372
  SIZE           1000 1000
  SHAPEPATH      "/ms4w/Apache/example/shp/webmap/"
  IMAGECOLOR     251 248 236
  IMAGETYPE      PNG24
  FONTSET        "/ms4w/Apache/example/fonts/fonts.list"

OUTPUTFORMAT
NAME 'AGG_Q'
DRIVER AGG/PNG
IMAGEMODE RGB
FORMATOPTION "QUANTIZE_FORCE=ON"
FORMATOPTION "QUANTIZE_DITHER=OFF"
FORMATOPTION "QUANTIZE_COLORS=256"
END

 PROJECTION
    "init=epsg:900913"
  END
SYMBOL
  NAME "downwarddiagonalfill"
  TYPE vector
  TRANSPARENT 0   # прозрачность
  POINTS
    0 1
    1 0
  END
END
WEB
    TEMPLATE  '/templates/template_.html'
    IMAGEPATH '/ms4w/tmp/ms_tmp/'
    IMAGEURL  '/ms_tmp/'
  	METADATA
		wms_title "КАРТА"
		wms_abstract "This is the WMS demo from GIS-Lab"
		wms_onlineresource  "http://localhost/cgi-bin/mapserv?map=ms4w/Apache/example/okrug.map&"
		wms_srs "EPSG:4326 epsg:900913" 
                wms_getfeatureinfo  "http://localhost/cgi-bin/mapserv?map=ms4w/Apache/example/okrug.map&"
                wms_featureinfoformat "text/plain"
	END
  END
#-------------------Строения-----------------------------------------
   LAYER 
    NAME         haus
    DATA         haus_A
    STATUS       ON
    TYPE         POLYGON

    CLASSITEM    "TYPE" 
    LABELITEM    "LABEL"   
    TEMPLATE     "dummy"
    TRANSPARENCY ALPHA    
    TOLERANCE 5  
    HEADER '/templates/templ_head.html'    
    FOOTER '/templates/templ_footer.html'  
    TEMPLATE '/templates/templ_query.html' 
    CLASS
      NAME       "Строения"
      EXPRESSION '0x13' # Выражение, определяющее класс
      STYLE
        COLOR        250 200 114
        OUTLINECOLOR 126 102 4
        ANTIALIAS TRUE
      END
     LABEL
        COLOR 32 32 32
        SHADOWCOLOR 218 218 218
        SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT arial-italic
        SIZE 7
        ANTIALIAS TRUE
        POSITION CL
        PARTIALS FALSE
        MINDISTANCE 100
        BUFFER 3
        ENCODING CP1251
      END	  
    END
  END # Конец определения слоя
END # Конец определения карты
Сглаживания так и нет...

Re: MapServer - Сглаживание

Добавлено: 25 янв 2010, 01:05
Максим Дубинин
выкиньте

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

OUTPUTFORMAT
NAME 'AGG_Q'
DRIVER AGG/PNG
IMAGEMODE RGB
FORMATOPTION "QUANTIZE_FORCE=ON"
FORMATOPTION "QUANTIZE_DITHER=OFF"
FORMATOPTION "QUANTIZE_COLORS=256"
END
либо ANTIALIAS TRUE либо AGG

Re: MapServer - Сглаживание

Добавлено: 25 янв 2010, 03:09
dobeer
выкинул сначала то, потом другое...никак не хочет сглаживать

Re: MapServer - Сглаживание

Добавлено: 25 янв 2010, 03:57
Максим Дубинин
пример, где это работает я привел
map-файл, где это работает я привел
использованные в примере данные можно взять здесь http://gis-lab.info/projects/osm-export.html
воспроизводите, разбирайтесь

Re: MapServer - Сглаживание

Добавлено: 29 янв 2010, 04:17
dobeer
Получилось сглаживание после добавления

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

format: 'png24' 
в строчку создания слоя

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

var wms = new OpenLayers.Layer.WMS.Untiled("Строения",
           mapurl,    {map: mappath, transparent: 'true',layers: 'haus', format: 'png24'},{'reproject': true});
но проблема в том, что этот созданный слой не прозрачным стал и он своим фоном перекрыл нижний слой с дорогами и дорог теперь не видно...как это можно исправить

Re: MapServer - Сглаживание

Добавлено: 21 май 2010, 17:41
Mavka
Когда вы пишите специфичный OUTPUTFORMAT, то его имя играет большую роль.
Если написать так:

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

OUTPUTFORMAT
    NAME 'AGG_Q'
    DRIVER AGG/PNG
    ...
END
то и в запросе WMS нужно задавать параметр

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

&FORMAT=AGG_Q
именно это и происходит, если в свойствах слоя в OpenLayers добавить параметр

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

format: 'AGG_Q' 
Поэтому имена лучше задавать с привычными трактовками - PNG, JPEG, GIF и т.п.

Для "DRIVER AGG/PNG" по умолчанию создается растр с палитрой (PC256). Другие варианты нужно задавать отдельно - RGB (полноцветный 24-bit), RGBA (то же с альфа каналом, 32-bit).

Пример слоя с прозрачностью (без фона):

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

OUTPUTFORMAT
    NAME "png"
    DRIVER AGG/PNG
    MIMETYPE "image/png"
    IMAGEMODE RGBA
    EXTENSION "png"
    FORMATOPTION "INTERLACE=OFF"
END