[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