[mapserver-users] Draw roads WITHOUT anti-aliasing
Eichner, Andreas - SID
Andreas.Eichner at sid.sachsen.de
Mon Nov 6 00:23:52 PST 2017
Hi Erik,
just tried building a freshly pulled mapserver/master and I got strange CMake errors too.
In my case wiping the build/ directory recreating it solved the problem.
HTH
> -----Ursprüngliche Nachricht-----
> Von: mapserver-users [mailto:mapserver-users-bounces at lists.osgeo.org] Im
> Auftrag von Erik H
> Gesendet: Freitag, 3. November 2017 21:24
> An: mapserver-users at lists.osgeo.org
> Betreff: Re: [mapserver-users] Draw roads WITHOUT anti-aliasing
>
> I made some changes to the mapserver 7 source code that achieve what I
> want (I'm now able to switch between aliased and antialiased lines,
> based on the ANTIALIAS keyword in the STYLE section).
>
> I tried to put up a pull request for it but I'm having problems
> compiling the code in the 'master' branch - compilation errors for
> mapmetadata.c. My code was branched off the release-7 branch and did not
> have that problem.
>
> The cmake command I used was
>
> cmake -DCMAKE_PREFIX_PATH=/usr/local/ WITH_GDAL=$GDAL_DIR -
> DWITH_FRIBIDI=OFF -DWITH_WFS=OFF -DWITH_WCS=OFF -
> DWITH_PROJ=/usr/local/lib -DWITH_LIBXML2=OFF WITH_POSTGIS=/usr/bin
> -DWITH_CLIENT_WFS=OFF -DWITH_WMS=OFF -DWITH_CLIENT_WMS=OFF
> -DWITH_CURL=OFF -DWITH_SOS=OFF -DWITH_PHP=OFF -
> DWITH_PERL=OFF -DWITH_RUBY=OFF -DWITH_JAVA=ON -
> DWITH_CSHARP=OFF -DWITH_HARFBUZZ=OFF -DWITH_PYTHON=ON -
> DWITH_GEOS=0 -DWITH_SVGCAIRO=OFF -DWITH_ORACLESPATIAL=OFF
> -DWITH_CAIRO=OFF -DWITH_THREAD_SAFETY=ON -DWITH_FCGI=OFF -DWITH_GIF=0
> ../ >../configure.out.txt
>
>
> Any suggestions?
>
> Thanks
>
> On Thu, Oct 19, 2017 at 11:04 AM, Erik H <erik.h11.01 at gmail.com> wrote:
>
>
> I just did what Andreas spelled out yesterday:
>
> Simply changing the typedef in line 91 of mapagg.cpp from
>
> typedef mapserver::renderer_scanline_aa_solid<renderer_base>
> renderer_scanline;
>
> to
>
> typedef mapserver::renderer_scanline_bin_solid<renderer_base>
> renderer_scanline;
>
>
>
> However, I'd like to be able to switch between rasterizer via some
> option in the .map file, so I'd welcome any suggestion on how to do
> that.
>
> On Thu, Oct 19, 2017 at 10:07 AM, Lime, Steve D (MNIT)
> <steve.lime at state.mn.us> wrote:
>
>
> Glad this was figured out! What was the code change exactly?
> ________________________________
>
> From: mapserver-users <mapserver-users-
> bounces at lists.osgeo.org <mailto:mapserver-users-bounces at lists.osgeo.org>
> > on behalf of Erik H <erik.h11.01 at gmail.com>
> Sent: Wednesday, October 18, 2017 8:07:42 PM
> To: Eichner, Andreas - SID
> Cc: mapserver-users at lists.osgeo.org <mailto:mapserver-
> users at lists.osgeo.org>
> Subject: Re: [mapserver-users] Draw roads WITHOUT anti-
> aliasing
>
> Andreas,
>
> I made that change in mapagg.cpp and it seems to do exactly
> what I need. Wunderbar!
>
> As for providing an option to switch rasterizer based on an
> option, how about reviving the FORMATOPTION 'ANTIALIAS'?
>
> Thanks, Erik
>
> On Wed, Oct 18, 2017 at 9:18 AM, Eichner, Andreas - SID
> <Andreas.Eichner at sid.sachsen.de <mailto:Andreas.Eichner at sid.sachsen.de>
> > wrote:
>
>
> Nope, this won't work:
>
> r->default_gamma = atof(msGetOutputFormatOption(
> format, "GAMMA", "0.75" ));
> if(r->default_gamma <= 0.0 || r->default_gamma >=
> 1.0) {
> r->default_gamma = 0.75;
> }
>
> From mapagg.cpp lines 844-847 forces 0 < GAMMA < 1
> Also note that MapServer uses a linear gamma function
> defined as
>
> double operator() (double x) const
> {
> if(x < m_start) return 0.0;
> if(x > m_end) return 1.0;
> return (x - m_start) / (m_end - m_start);
> }
>
> Where m_start is _always_ set to 0 and m_end is set to
> the GAMMA value given by you (or the default 0.75).
> I think someone should check this - to me it seems a
> power function was intented...
>
> HTH
>
> > -----Ursprüngliche Nachricht-----
> > Von: mapserver-users [mailto:mapserver-users-
> bounces at lists.osgeo.org <mailto:mapserver-users-bounces at lists.osgeo.org>
> ] Im
> > Auftrag von lars.schylberg at blixtmail.se
> > Gesendet: Mittwoch, 18. Oktober 2017 14:05
> > An: mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> > Betreff: Re: [mapserver-users] Draw roads WITHOUT
> anti-aliasing
> >
> > Hi,
> >
> >
> >
> >
>
> > I did some quick tests with :
> >
> >
> >
> >
> > OUTPUTFORMAT
> > NAME "png_G0"
> > DRIVER AGG/PNG
> > MIMETYPE "image/png"
> > IMAGEMODE RGB
> > EXTENSION "png"
> > FORMATOPTION "GAMMA=0.0"
> > END
> >
> >
> >
> >
> > and shp2img with options -i
> >
> >
> > eg: shp2img -m 01_polygon_td_poly.map -o
> 01_polygon_td_poly.png -i
> > png_G0
> >
> >
> >
> >
> >
> > I did some tests with both polygons, polygon outlines
> and lines and they
> > all seems to have anti-aliasing as far as I could
> see.
> >
> > Would this be an ok way to test it? I also have some
> people that would
> > like to do lines without anti-aliasing for a strange
> reason.
> >
> >
> >
> >
> >
> > Lars Schylberg
> >
> >
> >
> >
> >
> > -----Originalmeddelande-----
> > > Från: "Rahkonen Jukka (MML)"
> <jukka.rahkonen at maanmittauslaitos.fi
> <mailto:jukka.rahkonen at maanmittauslaitos.fi> >
> > > Till: "Eichner, Andreas - SID"
> <Andreas.Eichner at sid.sachsen.de <mailto:Andreas.Eichner at sid.sachsen.de>
> >, "Erik
> > H" <erik.h11.01 at gmail.com>
> > > Kopia: mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> > > Datum: 2017-10-18 11:13
> > > Ämne: Re: [mapserver-users] Draw roads WITHOUT
> anti-aliasing
> > >
> > > Hi,
> > >
> > > I suppose that the amount of antialiasing with AGG
> is set with "gamma"
> > parameter. Mapserver supports that at least for
> polygons as documented
> > in http://www.mapserver.org/mapfile/outputformat.html
> <http://www.mapserver.org/mapfile/outputformat.html> but you could try
> > if using gamma=0.0 has an effect on lines as well. It
> may be that it
> > does not because search
> > >
> >
> https://github.com/mapserver/mapserver/search?utf8=%E2%9C%93&q=gamma&typ
> <https://github.com/mapserver/mapserver/search?utf8=%E2%9C%93&q=gamma&ty
> p>
> > e=
> > > seems to find only something that is tied to
> polygon outlines
> > > https://github.com/mapserver/mapserver/blob/branch-
> 7- <https://github.com/mapserver/mapserver/blob/branch-7->
> > 0/renderers/agg/include/agg_renderer_outline_aa.h
> > >
> > >
> > > If gamma does not work for lines then it could be
> worth making a
> > feature request for adding a new formatoption
> "GAMMA_LINE=[].
> > >
> > > Couple of Mapnik links dealing with the same issue:
> > > http://gis.19327.n8.nabble.com/Turning-off-anti-
> aliasing- <http://gis.19327.n8.nabble.com/Turning-off-anti-aliasing->
> > td5339458.html
> > > http://mapnik.org/mapnik-reference/#3.0.6/line-
> gamma-method <http://mapnik.org/mapnik-reference/#3.0.6/line-gamma-
> method>
> > >
> > > -Jukka Rahkonen-
> > >
> > >
> > >
> > > -----Alkuperäinen viesti-----
> > > Lähettäjä: mapserver-users [mailto:mapserver-users-
> > bounces at lists.osgeo.org] Puolesta Eichner, Andreas -
> SID
> > > Lähetetty: 18. lokakuuta 2017 9:57
> > > Vastaanottaja: Erik H <erik.h11.01 at gmail.com>
> > > Kopio: mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> > > Aihe: Re: [mapserver-users] Draw roads WITHOUT
> anti-aliasing
> > >
> > > Damn... missed attaching the images.
> > >
> > > > -----Ursprüngliche Nachricht-----
> > > > Von: mapserver-users [mailto:mapserver-users-
> > bounces at lists.osgeo.org]
> > > > Im Auftrag von Eichner, Andreas - SID
> > > > Gesendet: Mittwoch, 18. Oktober 2017 08:28
> > > > An: Erik H
> > > > Cc: mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> > > > Betreff: Re: [mapserver-users] Draw roads WITHOUT
> anti-aliasing
> > > >
> > > > Hi,
> > > >
> > > > I just meant that it seems to be pretty easy to
> implement aliased
> > > > rendering with AGG.
> > > > Simply changing the typedef in line 91 of
> mapagg.cpp from
> > > >
> > > > typedef
> mapserver::renderer_scanline_aa_solid<renderer_base>
> > > > renderer_scanline;
> > > >
> > > > to
> > > >
> > > > typedef
> mapserver::renderer_scanline_bin_solid<renderer_base>
> > > > renderer_scanline;
> > > >
> > > > turns of anti-aliased rendering. I've attached
> the output of
> > "shp2img
> > > > -m line_simple.map" from the msautotests.
> > > > An additional member in class AGG2Renderer for
> the aliased
> > rasterizer
> > > > and conditionally passing one or the other to
> render_scanlines()
> > > > depending on some value of strokeStyleObj might
> be enough.
> > > >
> > > > Regards
> > > >
> > > > > -----Ursprüngliche Nachricht-----
> > > > > Von: Erik H [mailto:erik.h11.01 at gmail.com]
> > > > > Gesendet: Dienstag, 17. Oktober 2017 17:34
> > > > > An: Eichner, Andreas - SID
> > > > > Cc: Richard Greenwood; mapserver-
> users at lists.osgeo.org <mailto:mapserver-users at lists.osgeo.org>
> > > > > Betreff: Re: [mapserver-users] Draw roads
> WITHOUT anti-aliasing
> > > > >
> > > > > As for Andreas' remark about 'simply the use of
> another scanline
> > > > > rasterizer.' - I'm sorry but I'm not much of a
> C++ developer. If I
> > > > have
> > > > > to do rasterizing, I'd skip MapServer
> altogether and generate the
> > > > > PNG
> > > > in
> > > > > Java.
> > > > >
> > > > _______________________________________________
> > > > mapserver-users mailing list
> > > > mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> > > >
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
> <https://lists.osgeo.org/mailman/listinfo/mapserver-users>
> > > _______________________________________________
> > > mapserver-users mailing list
> > > mapserver-users at lists.osgeo.org <mailto:mapserver-
> users at lists.osgeo.org>
> > > https://lists.osgeo.org/mailman/listinfo/mapserver-
> users <https://lists.osgeo.org/mailman/listinfo/mapserver-users>
> >
> >
> >
> >
> >
> >
> >
> > --
> >
> >
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org <mailto:mapserver-
> users at lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/mapserver-
> users <https://lists.osgeo.org/mailman/listinfo/mapserver-users>
>
>
>
>
More information about the MapServer-users
mailing list