[mapserver-users] Angle Follow will accept only simple linestring don't MultiLinestring ?

thomas bonfort thomas.bonfort at gmail.com
Wed Aug 14 01:49:47 PDT 2013


what happens if you use an inline wkt feature of type MULTILINESTRING ?

On 14 August 2013 10:47, Andrea Peri <aperi2007 at gmail.com> wrote:
> Hi,
>
> I do other tests.
>
> Using instead of a spatialite, a shapefile.
> And accessing it using ogr or using ogr driver.
>
> I see the error trigger when use spatialite or shapefile accessed using the
> OGR driver.
>
> Instead it don't trigger when use a directly defined Feature or the
> mapserver direct shapefile driver.
>
> Regards,
>
> Andrea.
>
>
>
> 2013/8/14 Andrea Peri <aperi2007 at gmail.com>
>>
>> Yes.
>>
>> Is the OFFSET !
>>
>> Yes Thomas when I remove the offset the angle follow will work without
>> error.
>>
>> I have other informations:
>>
>> he error trigger on spatialite but don't in a simpe FEATURE text definet
>> dataset.
>> Infact with this dataset:
>>
>> LAYER
>>     NAME "line"
>>     TYPE LINE
>>     STATUS DEFAULT
>>     EXTENT  1662112.76 4858445.22 1666743.13 4860849.91
>>     FEATURE
>>     WKT "LINESTRING(1662112.755029 4859495.405004, 1662172.424828
>> 4859710.216279, 1662357.401204 4859984.697353, 1662411.104022
>> 4860175.640708, 1662345.467244 4860318.848225, 1662172.424828
>> 4860473.989701, 1662178.391808 4860670.900037, 1662321.599324
>> 4860796.206614, 1662619.948317 4860849.909432, 1662888.462411
>> 4860837.975473, 1663174.877444 4860611.230238, 1663222.613283
>> 4860384.485003, 1663145.042545 4860247.244467, 1662977.967109
>> 4860056.301111, 1662769.122814 4859841.489836, 1662709.453015 4859680.38138,
>> 1662810.891673 4859435.735206, 1663091.339726 4859250.75883, 1663371.78778
>> 4859137.386213, 1663813.344289 4859143.353192, 1663992.353685 4859256.72581,
>> 1664093.792343 4859513.305944, 1664028.155564 4859829.555876, 1663765.60845
>> 4860038.400171, 1663664.169793 4860193.541648, 1663652.235833
>> 4860390.451983, 1663771.57543 4860545.593459, 1664081.858383 4860599.296278,
>> 1664410.042275 4860581.395339, 1664779.995027 4860402.385943, 1664988.839322
>> 4860133.871849, 1665078.34402 4859919.060574, 1665114.145899 4859644.579501,
>> 1665114.145899 4859423.801246, 1665132.046838 4859214.956951, 1664947.070463
>> 4859077.716414, 1664947.070463 4858862.905139, 1665263.320395
>> 4858725.664602, 1665615.372207 4858731.631582, 1665764.546703
>> 4858916.607958, 1665830.183482 4859214.956951, 1665824.216502
>> 4859567.008762, 1665728.744824 4859925.027554, 1665639.240126
>> 4860223.376547, 1665633.273147 4860503.8246, 1665716.810865 4860670.900037,
>> 1665961.457039 4860760.404734, 1666253.839052 4860760.404734, 1666492.518246
>> 4860617.197218, 1666659.593682 4860408.352923, 1666743.1314 4860098.06997,
>> 1666713.296501 4859811.654937, 1666635.725763 4859638.612521, 1666474.617307
>> 4859519.272924, 1666295.607911 4859465.570105, 1666229.971132
>> 4859435.735206, 1665979.357978 4859262.69279, 1666009.192878 4859065.782454,
>> 1666301.574891 4858886.773058, 1666546.221065 4858862.905139, 1666623.791803
>> 4858707.763663, 1666576.055964 4858516.820307, 1666176.268314
>> 4858445.216549)"
>>     END #FEATURE
>>     LABELCACHE on
>>     CLASS
>>       STYLE
>>         COLOR 200 200 200
>>         OUTLINECOLOR 0 255 0
>>       END
>>     LABEL
>>      TEXT 'BLAH BLAH'
>>
>>         COLOR 0 85 255
>>         OUTLINECOLOR 212 255 255
>>         OUTLINEWIDTH 1
>>         FONT "LiberationSans-Regular"
>>         #FONT "Calibri"
>>
>>         TYPE truetype
>>         SIZE 9
>>         ANGLE FOLLOW
>>         OFFSET 15 99
>>         POSITION auto
>>         PRIORITY 10
>>         MAXOVERLAPANGLE 180.0
>>         BUFFER 1
>>         FORCE OFF
>>         PARTIALS FALSE
>>         MINDISTANCE 200
>>     END
>>     END #CLASS
>>   END
>>
>>
>> The error don't happen.
>>
>> Instead if I transfer this exact dataset in a spatialite (4.1.1) and apply
>> an
>> angle follow
>> with an offset
>>
>> the error trigger immediatly when the
>> box clip will create a multilinestring.
>>
>> However removing the
>> OFFSET setting the error don't trigger.
>>
>> please notice I'm using spatialite 4.1.1 and gdal 1.10.
>>
>> Regards,
>>
>> Andrea.
>>
>>
>>
>> 2013/8/14 thomas bonfort <thomas.bonfort at gmail.com>
>>>
>>> Andrea, can you confirm if you are having the error when you remove
>>> the label offset ?
>>>
>>> On 14 August 2013 09:37, Andrea Peri <aperi2007 at gmail.com> wrote:
>>> > Hi,
>>> >
>>> > My theory is not true.
>>> >
>>> > I was able to create a  featureset that like my image that will work
>>> > when
>>> > the visible box clip it creating a multilinestring..
>>> >
>>> > sorry for noise,
>>> >
>>> > My quest still go on.
>>> >
>>> > Regards,
>>> >
>>> >
>>> >
>>> >
>>> > 2013/8/13 Andrea Peri <aperi2007 at gmail.com>
>>> >>
>>> >> Hi,
>>> >> Perhaps I found the explanation.
>>> >>
>>> >> The "angle follow" with OGR is using the
>>> >> BufferBuilder::bufferLineSingleSided
>>> >> That function seem don't work with a MultiLinestring . It necessary
>>> >> need a
>>> >> simple linestring.
>>> >>
>>> >> 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.
>>> >> As showed in attached image.
>>> >>
>>> >> 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".
>>> >>
>>> >> Andrea.
>>> >>
>>> >> 2013/8/13 Andrea Peri <aperi2007 at gmail.com>
>>> >>>
>>> >>> ok, thx.
>>> >>> I change to multiple scale.
>>> >>>
>>> >>> However I do a rapid check removing a label component, but the
>>> >>> problem is
>>> >>> still here.
>>> >>>
>>> >>> Now I rewrite a more exact mapfile using two classes.
>>> >>>
>>> >>> Andrea.
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> 2013/8/13 thomas bonfort <thomas.bonfort at gmail.com>
>>> >>>>
>>> >>>> yes, that's incompatible. use multiple scale-dependant classes for
>>> >>>> now
>>> >>>>
>>> >>>> On 13 August 2013 18:26, Andrea Peri <aperi2007 at gmail.com> wrote:
>>> >>>> > The two label are at different max/min scaledenominator.
>>> >>>> > The goal is to have little label size at low scales and bigger
>>> >>>> > font
>>> >>>> > size at
>>> >>>> > bigger scales.
>>> >>>> >
>>> >>>> > However only one lable is active at one scale level.
>>> >>>> >
>>> >>>> > Is this incompatible with "follow" ?
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > 2013/8/13 thomas bonfort <thomas.bonfort at gmail.com>
>>> >>>> >>
>>> >>>> >> why the double label? they seem to be the same, but in any case
>>> >>>> >> multiple labels are not supported for FOLLOW.
>>> >>>> >>
>>> >>>> >> On 13 August 2013 18:08, Andrea Peri <aperi2007 at gmail.com> wrote:
>>> >>>> >> > I'm using spatialite 4.1.1,
>>> >>>> >> > so use ogr to access the db.
>>> >>>> >> >
>>> >>>> >> >   LAYER
>>> >>>> >> >     NAME "rt_topogr.50k.etichette.topon_idro_50k"
>>> >>>> >> >     STATUS OFF
>>> >>>> >> >     EXTENT 1554750.74 4678325.52 1771722.76 4924791.90
>>> >>>> >> >     TYPE LINE
>>> >>>> >> >     CONNECTIONTYPE OGR
>>> >>>> >> >     CONNECTION "/path-to-spatialite/zz_topografica.sqlite"
>>> >>>> >> >     DATA "select PK_UID_2, TOPO_OK, GEOMETRY from
>>> >>>> >> > topon_idro_50k"
>>> >>>> >> >     PROJECTION
>>> >>>> >> >       "+init=epsg:3003 +towgs84=0,0,0,0,0,0,0"
>>> >>>> >> >     END
>>> >>>> >> >     METADATA
>>> >>>> >> >       "wms_title" "topon_idro_50k"
>>> >>>> >> >       "wms_extent" "1554750.74 4678325.52 1771722.76
>>> >>>> >> > 4924791.90"
>>> >>>> >> >     END
>>> >>>> >> >     LABELCACHE ON
>>> >>>> >> >     MAXSCALEDENOM 60100
>>> >>>> >> >     MINSCALEDENOM 1
>>> >>>> >> >     CLASS
>>> >>>> >> >       NAME ''
>>> >>>> >> >       MAXSCALEDENOM 60100
>>> >>>> >> >       MINSCALEDENOM 1
>>> >>>> >> >       LABEL
>>> >>>> >> >         TEXT '[TOPO_OK]'
>>> >>>> >> >         COLOR 0 85 255
>>> >>>> >> >         OUTLINECOLOR 212 255 255
>>> >>>> >> >         OUTLINEWIDTH 1
>>> >>>> >> >         MAXSCALEDENOM 60100
>>> >>>> >> >         MINSCALEDENOM 40100
>>> >>>> >> >         FONT "LiberationSans-Regular"
>>> >>>> >> >         TYPE truetype
>>> >>>> >> >         SIZE 7
>>> >>>> >> >         ANGLE FOLLOW
>>> >>>> >> >         OFFSET 15 99
>>> >>>> >> >         POSITION auto
>>> >>>> >> >         PRIORITY 10
>>> >>>> >> >         MAXOVERLAPANGLE 180.0
>>> >>>> >> >         BUFFER 1
>>> >>>> >> >         FORCE OFF
>>> >>>> >> >         PARTIALS FALSE
>>> >>>> >> >         MINDISTANCE 200
>>> >>>> >> >       END
>>> >>>> >> >       LABEL
>>> >>>> >> >         TEXT '[TOPO_OK]'
>>> >>>> >> >         COLOR 0 85 255
>>> >>>> >> >         OUTLINECOLOR 212 255 255
>>> >>>> >> >         OUTLINEWIDTH 1
>>> >>>> >> >         MAXSCALEDENOM 40100
>>> >>>> >> >         MINSCALEDENOM 1
>>> >>>> >> >         FONT "LiberationSans-Regular"
>>> >>>> >> >         TYPE truetype
>>> >>>> >> >         SIZE 9
>>> >>>> >> >         ANGLE FOLLOW
>>> >>>> >> >         OFFSET 15 99
>>> >>>> >> >         POSITION auto
>>> >>>> >> >         PRIORITY 10
>>> >>>> >> >         MAXOVERLAPANGLE 180.0
>>> >>>> >> >         BUFFER 1
>>> >>>> >> >         FORCE OFF
>>> >>>> >> >         PARTIALS FALSE
>>> >>>> >> >         MINDISTANCE 200
>>> >>>> >> >       END
>>> >>>> >> >     END
>>> >>>> >> >   END
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> > 2013/8/13 thomas bonfort <thomas.bonfort at gmail.com>
>>> >>>> >> >>
>>> >>>> >> >> there's something strange in your error message... the
>>> >>>> >> >> singleSidedBuffer stuff is in GEOS, and should have nothing to
>>> >>>> >> >> do
>>> >>>> >> >> in
>>> >>>> >> >> msOGRFileNextShape. post your whole mapfile layer.
>>> >>>> >> >>
>>> >>>> >> >> On 13 August 2013 17:42, Andrea Peri <aperi2007 at gmail.com>
>>> >>>> >> >> wrote:
>>> >>>> >> >> > Hi,
>>> >>>> >> >> >
>>> >>>> >> >> > I tested trasforming the multilinestring dataset in a
>>> >>>> >> >> > linestring
>>> >>>> >> >> > dataset
>>> >>>> >> >> > but
>>> >>>> >> >> > the error is still here.
>>> >>>> >> >> >
>>> >>>> >> >> > msDrawMap(): Image handling error. Failed to draw layer
>>> >>>> >> >> > named
>>> >>>> >> >> > 'rt_topogr.50k.etichette.topon_idro_50k'.
>>> >>>> >> >> >
>>> >>>> >> >> > msOGRFileNextShape(): OGR error. IllegalArgumentException:
>>> >>>> >> >> > BufferBuilder::bufferLineSingleSided only accept linestrings
>>> >>>> >> >> >
>>> >>>> >> >> > So it is not really due to a multilinestring vs linestring
>>> >>>> >> >> > question.
>>> >>>> >> >> >
>>> >>>> >> >> > The quest carry on.
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> > 2013/8/13 Andrea Peri <aperi2007 at gmail.com>
>>> >>>> >> >> >>
>>> >>>> >> >> >> Hi,
>>> >>>> >> >> >>
>>> >>>> >> >> >> Try.ing to set a label on a MULTILINESTRING dataset.
>>> >>>> >> >> >>
>>> >>>> >> >> >> I set a label with Follow capability.
>>> >>>> >> >> >>
>>> >>>> >> >> >>         ANGLE FOLLOW
>>> >>>> >> >> >>
>>> >>>> >> >> >> But I'm having this error:
>>> >>>> >> >> >>
>>> >>>> >> >> >>  msOGRFileNextShape(): OGR error. IllegalArgumentException:
>>> >>>> >> >> >> BufferBuilder::bufferLineSingleSided only accept
>>> >>>> >> >> >> linestrings
>>> >>>> >> >> >>
>>> >>>> >> >> >> Is the Follow compatible with a MultiLinestring dataset or
>>> >>>> >> >> >> need
>>> >>>> >> >> >> only
>>> >>>> >> >> >> simple linestrings ?
>>> >>>> >> >> >>
>>> >>>> >> >> >> Thx,
>>> >>>> >> >> >>
>>> >>>> >> >> >> --
>>> >>>> >> >> >> -----------------
>>> >>>> >> >> >> Andrea Peri
>>> >>>> >> >> >> . . . . . . . . .
>>> >>>> >> >> >> qwerty àèìòù
>>> >>>> >> >> >> -----------------
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> > --
>>> >>>> >> >> > -----------------
>>> >>>> >> >> > Andrea Peri
>>> >>>> >> >> > . . . . . . . . .
>>> >>>> >> >> > qwerty àèìòù
>>> >>>> >> >> > -----------------
>>> >>>> >> >> >
>>> >>>> >> >> > _______________________________________________
>>> >>>> >> >> > mapserver-users mailing list
>>> >>>> >> >> > mapserver-users at lists.osgeo.org
>>> >>>> >> >> > http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>> >>>> >> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> > --
>>> >>>> >> > -----------------
>>> >>>> >> > Andrea Peri
>>> >>>> >> > . . . . . . . . .
>>> >>>> >> > qwerty àèìòù
>>> >>>> >> > -----------------
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > --
>>> >>>> > -----------------
>>> >>>> > Andrea Peri
>>> >>>> > . . . . . . . . .
>>> >>>> > qwerty àèìòù
>>> >>>> > -----------------
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> -----------------
>>> >>> Andrea Peri
>>> >>> . . . . . . . . .
>>> >>> qwerty àèìòù
>>> >>> -----------------
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> -----------------
>>> >> Andrea Peri
>>> >> . . . . . . . . .
>>> >> qwerty àèìòù
>>> >> -----------------
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > -----------------
>>> > Andrea Peri
>>> > . . . . . . . . .
>>> > qwerty àèìòù
>>> > -----------------
>>
>>
>>
>>
>> --
>> -----------------
>> Andrea Peri
>> . . . . . . . . .
>> qwerty àèìòù
>> -----------------
>
>
>
>
> --
> -----------------
> Andrea Peri
> . . . . . . . . .
> qwerty àèìòù
> -----------------


More information about the mapserver-users mailing list