[mapserver-users] Expression and nquery with sde issue

Steve Lime sdlime at gmail.com
Wed Jul 20 11:18:52 EDT 2011


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>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>
> 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
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>
>
>
> --
>
> Mário Franco | Software Developer | mario.franco at ydreams.com
> YDreams - Informática S.A. | www.ydreams.com | +351 210 314 000 | 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
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110720/c2c3d69e/attachment-0001.html


More information about the mapserver-users mailing list