<div dir="ltr"><div><div><div><div><div>Hi,<br></div>Perhaps I found the explanation.<br><br></div>The "angle follow" with OGR is using the BufferBuilder::bufferLineSingleSided <br></div>That function seem don't work with a MultiLinestring . It necessary need a simple linestring.<br>

<br></div>The question is that sometime the simple linestirng when is clipped from the visible bbox of the map to render, is transformed in a MultiLinestring.<br></div><div>As showed in attached image.<br><br></div><div>
So a linestring geometry clipped by the visible bbox will become a multilinestring geometry and the bufferLineSingleSided will give error to put a "follow angle".<br><br></div><div><div><div><div><div><div class="gmail_extra">
Andrea.<br></div><div class="gmail_extra"><br><div class="gmail_quote">
2013/8/13 Andrea Peri <span dir="ltr"><<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div dir="ltr"><div><div><div>ok, thx.<br></div><div></div><div>I change to multiple scale.<br><br></div>However I do a rapid check removing a label component, but the problem is still here.<br><br></div>Now I rewrite a more exact mapfile using two classes.<span><font color="#888888"><br>


<br></font></span></div><span><font color="#888888">Andrea.<br><br><div><div><br></div></div></font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/13 thomas bonfort <span dir="ltr"><<a href="mailto:thomas.bonfort@gmail.com" target="_blank">thomas.bonfort@gmail.com</a>></span><br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">yes, that's incompatible. use multiple scale-dependant classes for now<br>
<div><div><br>
On 13 August 2013 18:26, Andrea Peri <<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>> wrote:<br>
> The two label are at different max/min scaledenominator.<br>
> The goal is to have little label size at low scales and bigger font size at<br>
> bigger scales.<br>
><br>
> However only one lable is active at one scale level.<br>
><br>
> Is this incompatible with "follow" ?<br>
><br>
><br>
><br>
> 2013/8/13 thomas bonfort <<a href="mailto:thomas.bonfort@gmail.com" target="_blank">thomas.bonfort@gmail.com</a>><br>
>><br>
>> why the double label? they seem to be the same, but in any case<br>
>> multiple labels are not supported for FOLLOW.<br>
>><br>
>> On 13 August 2013 18:08, Andrea Peri <<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>> wrote:<br>
>> > I'm using spatialite 4.1.1,<br>
>> > so use ogr to access the db.<br>
>> ><br>
>> >   LAYER<br>
>> >     NAME "rt_topogr.50k.etichette.topon_idro_50k"<br>
>> >     STATUS OFF<br>
>> >     EXTENT 1554750.74 4678325.52 1771722.76 4924791.90<br>
>> >     TYPE LINE<br>
>> >     CONNECTIONTYPE OGR<br>
>> >     CONNECTION "/path-to-spatialite/zz_topografica.sqlite"<br>
>> >     DATA "select PK_UID_2, TOPO_OK, GEOMETRY from topon_idro_50k"<br>
>> >     PROJECTION<br>
>> >       "+init=epsg:3003 +towgs84=0,0,0,0,0,0,0"<br>
>> >     END<br>
>> >     METADATA<br>
>> >       "wms_title" "topon_idro_50k"<br>
>> >       "wms_extent" "1554750.74 4678325.52 1771722.76 4924791.90"<br>
>> >     END<br>
>> >     LABELCACHE ON<br>
>> >     MAXSCALEDENOM 60100<br>
>> >     MINSCALEDENOM 1<br>
>> >     CLASS<br>
>> >       NAME ''<br>
>> >       MAXSCALEDENOM 60100<br>
>> >       MINSCALEDENOM 1<br>
>> >       LABEL<br>
>> >         TEXT '[TOPO_OK]'<br>
>> >         COLOR 0 85 255<br>
>> >         OUTLINECOLOR 212 255 255<br>
>> >         OUTLINEWIDTH 1<br>
>> >         MAXSCALEDENOM 60100<br>
>> >         MINSCALEDENOM 40100<br>
>> >         FONT "LiberationSans-Regular"<br>
>> >         TYPE truetype<br>
>> >         SIZE 7<br>
>> >         ANGLE FOLLOW<br>
>> >         OFFSET 15 99<br>
>> >         POSITION auto<br>
>> >         PRIORITY 10<br>
>> >         MAXOVERLAPANGLE 180.0<br>
>> >         BUFFER 1<br>
>> >         FORCE OFF<br>
>> >         PARTIALS FALSE<br>
>> >         MINDISTANCE 200<br>
>> >       END<br>
>> >       LABEL<br>
>> >         TEXT '[TOPO_OK]'<br>
>> >         COLOR 0 85 255<br>
>> >         OUTLINECOLOR 212 255 255<br>
>> >         OUTLINEWIDTH 1<br>
>> >         MAXSCALEDENOM 40100<br>
>> >         MINSCALEDENOM 1<br>
>> >         FONT "LiberationSans-Regular"<br>
>> >         TYPE truetype<br>
>> >         SIZE 9<br>
>> >         ANGLE FOLLOW<br>
>> >         OFFSET 15 99<br>
>> >         POSITION auto<br>
>> >         PRIORITY 10<br>
>> >         MAXOVERLAPANGLE 180.0<br>
>> >         BUFFER 1<br>
>> >         FORCE OFF<br>
>> >         PARTIALS FALSE<br>
>> >         MINDISTANCE 200<br>
>> >       END<br>
>> >     END<br>
>> >   END<br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > 2013/8/13 thomas bonfort <<a href="mailto:thomas.bonfort@gmail.com" target="_blank">thomas.bonfort@gmail.com</a>><br>
>> >><br>
>> >> there's something strange in your error message... the<br>
>> >> singleSidedBuffer stuff is in GEOS, and should have nothing to do in<br>
>> >> msOGRFileNextShape. post your whole mapfile layer.<br>
>> >><br>
>> >> On 13 August 2013 17:42, Andrea Peri <<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>> wrote:<br>
>> >> > Hi,<br>
>> >> ><br>
>> >> > I tested trasforming the multilinestring dataset in a linestring<br>
>> >> > dataset<br>
>> >> > but<br>
>> >> > the error is still here.<br>
>> >> ><br>
>> >> > msDrawMap(): Image handling error. Failed to draw layer named<br>
>> >> > 'rt_topogr.50k.etichette.topon_idro_50k'.<br>
>> >> ><br>
>> >> > msOGRFileNextShape(): OGR error. IllegalArgumentException:<br>
>> >> > BufferBuilder::bufferLineSingleSided only accept linestrings<br>
>> >> ><br>
>> >> > So it is not really due to a multilinestring vs linestring question.<br>
>> >> ><br>
>> >> > The quest carry on.<br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > 2013/8/13 Andrea Peri <<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>><br>
>> >> >><br>
>> >> >> Hi,<br>
>> >> >><br>
>> >> >> Try.ing to set a label on a MULTILINESTRING dataset.<br>
>> >> >><br>
>> >> >> I set a label with Follow capability.<br>
>> >> >><br>
>> >> >>         ANGLE FOLLOW<br>
>> >> >><br>
>> >> >> But I'm having this error:<br>
>> >> >><br>
>> >> >>  msOGRFileNextShape(): OGR error. IllegalArgumentException:<br>
>> >> >> BufferBuilder::bufferLineSingleSided only accept linestrings<br>
>> >> >><br>
>> >> >> Is the Follow compatible with a MultiLinestring dataset or need only<br>
>> >> >> simple linestrings ?<br>
>> >> >><br>
>> >> >> Thx,<br>
>> >> >><br>
>> >> >> --<br>
>> >> >> -----------------<br>
>> >> >> Andrea Peri<br>
>> >> >> . . . . . . . . .<br>
>> >> >> qwerty àèìòù<br>
>> >> >> -----------------<br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > --<br>
>> >> > -----------------<br>
>> >> > Andrea Peri<br>
>> >> > . . . . . . . . .<br>
>> >> > qwerty àèìòù<br>
>> >> > -----------------<br>
>> >> ><br>
>> >> > _______________________________________________<br>
>> >> > mapserver-users mailing list<br>
>> >> > <a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
>> >> > <a href="http://lists.osgeo.org/mailman/listinfo/mapserver-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
>> >> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > -----------------<br>
>> > Andrea Peri<br>
>> > . . . . . . . . .<br>
>> > qwerty àèìòù<br>
>> > -----------------<br>
><br>
><br>
><br>
><br>
> --<br>
> -----------------<br>
> Andrea Peri<br>
> . . . . . . . . .<br>
> qwerty àèìòù<br>
> -----------------<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>-----------------<br>Andrea Peri<br>. . . . . . . . . <br>qwerty àèìòù<br>-----------------<br>
</div>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>-----------------<br>Andrea Peri<br>. . . . . . . . . <br>qwerty àèìòù<br>-----------------<br>
</div></div></div></div></div></div></div>