[mapserver-users] Expression and nquery with sde issue

Mario Franco mario.franco at ydreams.com
Wed Jul 20 11:29:16 EDT 2011


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.

I will waiting ...  thx

Mário

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
>
>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20110720/dfdb0383/attachment-0001.html


More information about the mapserver-users mailing list