[mapserver-users] Expression and nquery with sde issue
Stephan Holl
stephan.holl at intevation.de
Wed Jul 20 08:34:12 PDT 2011
Hello Mario,
Mario Franco <mario.franco at ydreams.com>, [20110720 - 16:29:16]
> I'm not building from source because the environment is windows and I
> don't have a way (and knowledge ) configure all compile environment.
>
> But thank you for the explanation I understand the problem, it's
> probably that because labels with big numbers are converted to
> scientific notation.
>
> The round values are ok for visualization in the labels but not to
> use in the class filter expressions.
we use SDE quite a lot, but do not have this issues.
in current trunk there is problem (recently fixed)[1] related with the
expression and filters.
Best
Stephan
[1] http://trac.osgeo.org/mapserver/ticket/3481
> On 20-07-2011 16:18, Steve Lime wrote:
> > I don't have access to SDE on my home box but will in a few days
> > when I'm back to work... SDE uses the function msDoubleToString in
> > mapstring.c to convert values (MapServer holds all attribute values
> > as strings). The conversion uses the %g conversion specifier. That
> > must be the problem.
> >
> > If you're building from source you could try changing the calls to
> > msDoubleToString in mapsde.c to pass MS_TRUE instead of MS_FALSE
> > for the last argument. That will trigger the use of %f, perhaps
> > that will make a difference.
> >
> > Could also try changing the conversion specifiers in
> > msDoubleToString to use %Lf and %Lg and see that fixes things.
> >
> > Steve
> >
> > On Tue, Jul 19, 2011 at 12:41 PM, Mario Franco
> > <mario.franco at ydreams.com <mailto:mario.franco at ydreams.com>> wrote:
> >
> > Can anyone that uses mapserver with sde reproduce the label and
> > expression issue that I'm having?
> >
> >
> >
> >
> > On 15-07-2011 15:38, Mario Franco wrote:
> >>
> >> The version is Mapserver 5.6.3 and using the attribute as label
> >> was how find out the values were being rounded.
> >> For example the attribute has values from 1000 to 170000 and if
> >> the value is smaller than 100000 rounds the value with one
> >> decimal but above 100000
> >> rounds to and integer.
> >> I'm using sqlserver with the SDE and the atrribute type is
> >> numeric could this have anything to do with it?
> >>
> >> Mário
> >>
> >> On 15-07-2011 15:23, Steve Lime wrote:
> >>> On issue one, what version are you using? MapServer shouldn't
> >>> be rounding the value. The comparison should be being done as a
> >>> double. It might be helpful to see a sample dataset although
> >>> if this is SDE I can't test on my end. One thing to try to help
> >>> diagnose the problem would be to create a sample mapfile that
> >>> draws your layer and uses the area attribute for labeling.
> >>> What shows up for labels?
> >>>
> >>> Steve
> >>>
> >>> Sent from my iPad
> >>>
> >>> On Jul 15, 2011, at 5:14 AM, Mario Franco
> >>> <mario.franco at ydreams.com <mailto:mario.franco at ydreams.com>>
> >>> wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I having two issues with mapserver if anyone can help me I
> >>>> would be appreciated.
> >>>>
> >>>> The first has to do with an Expression in a class:
> >>>>
> >>>> I have a shape with an attribute with the 172060.0937 but
> >>>> when add to the class:
> >>>>
> >>>>> EXPRESSION ( [AREA] = 172060.0937 )
> >>>>
> >>>> The problem is that this expression returns false because
> >>>> mapserver is rounding the double value from the database. If
> >>>> I compare with:
> >>>>
> >>>>> EXPRESSION ( [AREA] = 172060)
> >>>>
> >>>> it works. There is any way to turn this off or to increase
> >>>> the precision?
> >>>>
> >>>>
> >>>>
> >>>> The second issue is:
> >>>>
> >>>> I'm using this url
> >>>> (http://localhost:82/cgi-bin/mapserv.exe?map=D%3a\projects\Inag\InterSIG+II\InterSIG+Website\Trunk\InterSIG+ASP.NET\Maps%2fintersig_281.map&qlayer=Concelhos&layers=Concelhos&MAPSIZE=629%20467&MINX=-232614.525612302&MINY=-49761.6088409424&MAXX=676601.080299802&MAXY=625284&mode=NQUERY&MAPSHAPE=POLYGON%28%28-232614%20-49761,%20-232614%20625284,%20676601%20625284,%20676601%20-49761,%20-232614%20-49761%29%29
> >>>> <http://localhost:82/cgi-bin/mapserv.exe?map=D%3a%5Cprojects%5CInag%5CInterSIG+II%5CInterSIG+Website%5CTrunk%5CInterSIG+ASP.NET%5CMaps%2fintersig_281.map&qlayer=Concelhos&layers=Concelhos&MAPSIZE=629%20467&MINX=-232614.525612302&MINY=-49761.6088409424&MAXX=676601.080299802&MAXY=625284&mode=NQUERY&MAPSHAPE=POLYGON%28%28-232614%20-49761,%20-232614%20625284,%20676601%20625284,%20676601%20-49761,%20-232614%20-49761%29%29>)
> >>>> to execute a nquery but I always get the error
> >>>> "msSDELayerGetShape(): SDE error. SE_stream_fetch_row():
> >>>> Invalid parameter value passed to function. (-66) "
> >>>>
> >>>> The log doesn't help that much:
> >>>>
> >>>>> [Fri Jul 15 10:47:19 2011].20000 msSDELayerOpen(): Layer
> >>>>> Concelhos opened from scratch.
> >>>>> [Fri Jul 15 10:47:23 2011].35000
> >>>>> msConnPoolRegister(Concelhos,ydinag2,port:5151,sde,sde,sde,01D6BCC0)
> >>>>> [Fri Jul 15 10:47:23 2011].35000 msSDELayerOpen(): Layer
> >>>>> Concelhos specified version SDE.DEFAULT.
> >>>>> [Fri Jul 15 10:47:23 2011].42000 msSDEGetLayerInfo():
> >>>>> Looking for layer by SDE.CONCELH_PTCONT_2008_0_596, SHAPE,
> >>>>> ydinag2,port:5151,sde,sde,sde
> >>>>> [Fri Jul 15 10:47:23 2011].42000 msSDEGetLayerInfo(): No
> >>>>> cached layerid found.
> >>>>> [Fri Jul 15 10:47:23 2011].63000 msSDELCacheAdd(): Caching
> >>>>> id for SDE.CONCELH_PTCONT_2008_0_596, SHAPE,
> >>>>> ydinag2,port:5151,sde,sde,sde
> >>>>> [Fri Jul 15 10:47:23 2011].72000 Getting all column
> >>>>> information in msSDELayerInitItemInfo
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for DICO
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for CONCELHO
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for DI
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for DISTRITO
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for CCDR
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for NUT3
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for NUT3_NOME
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for NUT2
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for NUT2_NOME
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for AREA2008_1
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for objectid
> >>>>> [Fri Jul 15 10:47:23 2011].79000 msSDELayerInitItemInfo():
> >>>>> getting info for SHAPE
> >>>>> [Fri Jul 15 10:47:23 2011].79000 Column information has
> >>>>> already been gotten... returning from msSDELayerInitItemInfo
> >>>>> [Fri Jul 15 10:47:43 2011].122000 msSDELayerGetShape(): SDE
> >>>>> error. SE_stream_fetch_row(): Invalid parameter value passed
> >>>>> to function. (-66)
> >>>>> [Fri Jul 15 10:47:43 2011].126000 msFreeMap(): freeing map
> >>>>> at 01D3EFE8.
> >>>>> [Fri Jul 15 10:47:43 2011].126000
> >>>>> msSDELayerCloseConnection(): Closing connection for layer
> >>>>> Concelhos. [Fri Jul 15 10:47:43 2011].126000
> >>>>> msConnPoolRelease(Concelhos,ydinag2,port:5151,sde,sde,sde,01D6BCC0)
> >>>>> [Fri Jul 15 10:47:43 2011].126000
> >>>>> msConnPoolClose(ydinag2,port:5151,sde,sde,sde,01D6BCC0)
> >>>>> [Fri Jul 15 10:47:43 2011].156000 msSDELayerClose(): Closing
> >>>>> layer Concelhos.
> >>>>> [Fri Jul 15 10:47:43 2011].156000
> >>>>> msConnPoolRelease(Concelhos,ydinag2,port:5151,sde,sde,sde,00000000)
> >>>>> [Fri Jul 15 10:47:43 2011].156000 msConnPoolRelease():
> >>>>> Unable to find handle for layer 'Concelhos'.
> >>>>> [Fri Jul 15 10:47:43 2011].156000 msConnPoolRelease():
> >>>>> General error message. Unable to find handle for layer
> >>>>> 'Concelhos'.
> >>>>
> >>>>
> >>>> Here part of my configuration:
> >>>>> LAYER
> >>>>> NAME "Concelhos"
> >>>>> METADATA
> >>>>> "wms_title" "Concelhos" # required
> >>>>> "wfs_title" "Concelhos" # required
> >>>>> "gml_featureid" "ID" ## REQUIRED
> >>>>> "gml_geometries" "geom"
> >>>>> "gml_geom_type" "polygon"
> >>>>> "gml_include_items" "all" #
> >>>>> Optional (serves all attributes for layer) "gml_exclude_items"
> >>>>> "GEOMETRY,OBJECTID" "ows_include_items" "all"
> >>>>> "ows_exclude_items"
> >>>>> "GEOMETRY,OBJECTID" END
> >>>>> DUMP true
> >>>>> TOLERANCE 10
> >>>>> TOLERANCEUNITS meters
> >>>>>
> >>>>> TYPE polygon
> >>>>>
> >>>>> #CONNECTIONTYPE SDE
> >>>>> CONNECTIONTYPE PLUGIN
> >>>>> PLUGIN
> >>>>> "D:/ms4w/Apache/specialplugins/msplugin_sde_92.dll" CONNECTION
> >>>>> "ydinag2,port:5151,sde,sde,sde"
> >>>>> DATA
> >>>>> "SDE.CONCELH_PTCONT_2008_0_596,SHAPE,SDE.DEFAULT"
> >>>>> PROJECTION
> >>>>> "init=EPSG:3763" #--sistema de coordenadas
> >>>>> desta layer na origem END
> >>>>>
> >>>>> STATUS ON
> >>>>> OPACITY 100
> >>>>> TEMPLATE '../Templates/Identify/t.html'
> >>>>
> >>>> I'm using Mapserver 5.6.3, I know it's not the latest but I
> >>>> didn't updated yet.
> >>>>
> >>>> Any help would be useful and thx in advance.
> >>>>
> >>>> Mário Franco
> >>>>
> >>>> _______________________________________________
> >>>> mapserver-users mailing list
> >>>> mapserver-users at lists.osgeo.org
> >>>> <mailto:mapserver-users at lists.osgeo.org>
> >>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> >>
> >
> >
> > --
> >
> > Mário Franco | Software Developer | mario.franco at ydreams.com
> > <mailto:mario.franco at ydreams.com>
> > YDreams - Informática S.A. | www.ydreams.com
> > <http://www.ydreams.com> | +351 210 314 000
> > <tel:%2B351%20210%20314%20000> | Blog
> > <http://www.ydreams.com/blog/> | YouTube
> > <http://www.youtube.com/ydreams> | Vimeo
> > <http://www.vimeo.com/ydreams/> | Twitter
> > <http://twitter.com/ydreams/>
> >
> > *Disclaimer and Confidentiality Notice:* YDreams accepts no
> > responsibility or liability whatsoever with regard to the
> > information herein contained. This message including any
> > attachment hereof is confidential and may be privileged or
> > otherwise legally protected from disclosure and may only be
> > read, copied and used by the intended recipient. If you are not the
> > intended recipient, please contact the sender immediately (+351
> > 210 314 000) and delete this email and any attachment
> > permanently from your system. You must not copy this email or any
> > attachment or disclose its/their contents to any other person or
> > entity. Thank you.
> >
> >
> > _______________________________________________
> > mapserver-users mailing list
> > mapserver-users at lists.osgeo.org
> > <mailto:mapserver-users at lists.osgeo.org>
> > http://lists.osgeo.org/mailman/listinfo/mapserver-users
> >
> >
>
>
--
Stephan Holl <stephan.holl at intevation.de> | Tel.: +49 (0)541-33 508 3663
Intevation GmbH, Neuer Graben 17, 49074 OS | AG Osnabrück - HR B 18998
Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110720/d5790fbc/attachment.sig>
More information about the MapServer-users
mailing list