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 <[email protected]>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 <[email protected]> > 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 > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapserver-users > > > > > -- > > Mário Franco | Software Developer | [email protected] > 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 > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapserver-users > >
_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
