[mapserver-users] Function "queryByRect(rectObj rect)" not working correctly

"tschobber tschöbbi" tschobber at gmx.at
Tue Jun 15 05:59:29 EDT 2010


Hi mailing list,

I have a problem concerning the Mapserver function "queryByRect(rectObj rect)" or the function "getResult". The method returns the wrong results or rather shapes or something is wrong with the mapfile (see attachment). The strange part is that the amount of shapes selected is correct but the shapes selected aren't correct - important is that if I use the function "whichShapes" the shapes are selected correctly.

The first php code snippet shows a part of the method that gets wrong results. The second has the same effect but is using the function "whichShapes" and "nextShape" and the results are correct.



CODE1:

[PHP]

.
.
.

$map->queryByRect($oGeorefRect);//$oGeorefRect is a rectObj 

$oLayer = $map->GetLayerByName($querylayer_in);//$querylayer_in = see mapfile layer "layer_xxx_100614_694d5fb11c67415"

$numResults = $oLayer->getNumResults();

for ($iRes=0; $iRes < $numResults; $iRes++) {
		
$oRes = $oLayer->getResult($iRes);
$oLayer->getFeature($oRes->shapeindex);

.
.
.

[/PHP]


CODE2:

[PHP]

.
.
.

$map->queryByRect($oGeorefRect);//$oGeorefRect is a rectObj 

$oLayer = $map->GetLayerByName($querylayer_in);//$querylayer_in = see mapfile layer "layer_xxx_100614_694d5fb11c67415"

$numResults = $oLayer->getNumResults();
$status = $oLayer->open();
$oLayer->whichShapes($oGeorefRect);

while($oShape = $oLayer->nextShape()) {

.
.
.

[/PHP]

What's the difference between those functions? Why is one working and the other not?

Thanks for answers.

Greetings,

Martin
-- 
GMX DSL: Internet-, Telefon- und Handy-Flat ab 19,99 EUR/mtl.  
Bis zu 150 EUR Startguthaben inklusive! http://portal.gmx.net/de/go/dsl
-------------- next part --------------
MAP
  EXTENT 100576.796875 265258 699423.203125 594238
  FONTSET "../data/fonts/fonts.txt"
  IMAGECOLOR 255 255 255
  IMAGETYPE AGGA
  SYMBOLSET "../includes/sys.sym"
  SHAPEPATH "../data"
  SIZE 700 385
  STATUS ON
  UNITS METERS
  CONFIG MS_ERRORFILE "/tmp/ms_error.txt"
  NAME "xxxxyyyy"

  DEBUG 1
  OUTPUTFORMAT
    NAME "AGGA"
    MIMETYPE "image/png"
    DRIVER "AGG/PNG"
    EXTENSION "png"
    IMAGEMODE "RGBA"
    TRANSPARENT TRUE
    FORMATOPTION "TRANSPARENT=ON"
  END

  OUTPUTFORMAT
    NAME "gif"
    MIMETYPE "image/gif"
    DRIVER "GD/GIF"
    EXTENSION "gif"
    IMAGEMODE "PC256"
    TRANSPARENT FALSE
  END

  OUTPUTFORMAT
    NAME "png"
    MIMETYPE "image/png"
    DRIVER "GD/PNG"
    EXTENSION "png"
    IMAGEMODE "PC256"
    TRANSPARENT FALSE
  END

  OUTPUTFORMAT
    NAME "png24"
    MIMETYPE "image/png"
    DRIVER "GD/PNG"
    EXTENSION "png"
    IMAGEMODE "RGB"
    TRANSPARENT FALSE
    FORMATOPTION "INTERLACE=OFF"
  END

  OUTPUTFORMAT
    NAME "jpeg"
    MIMETYPE "image/jpeg"
    DRIVER "GD/JPEG"
    EXTENSION "jpg"
    IMAGEMODE "RGB"
    TRANSPARENT FALSE
    FORMATOPTION "QUALITY=100"
  END

  OUTPUTFORMAT
    NAME "imagemap"
    MIMETYPE "text/html"
    DRIVER "imagemap"
    EXTENSION "html"
    IMAGEMODE "PC256"
    TRANSPARENT FALSE
  END

  PROJECTION
    "init=epsg:31297"
  END
  LEGEND
    IMAGECOLOR 255 255 255
    KEYSIZE 20 10
    KEYSPACING 5 5
    LABEL
      SIZE MEDIUM
      TYPE BITMAP
      BUFFER 0
      COLOR 0 0 0
      FORCE FALSE
      MINDISTANCE -1
      MINFEATURESIZE -1
      OFFSET 0 0
      PARTIALS TRUE
    END
    POSITION LL
    STATUS OFF
  END

  QUERYMAP
    COLOR 255 0 0
    SIZE -1 -1
    STATUS ON
    STYLE HILITE
  END

  REFERENCE
    COLOR -1 -1 -1
    EXTENT 105000 265258 695000 594238
    IMAGE "../img/keymap_0.png"
    OUTLINECOLOR 255 0 0
    SIZE 153 84
    STATUS ON
      MARKER 0
      MARKERSIZE 0
      MINBOXSIZE 3
      MAXBOXSIZE 0
  END

  SCALEBAR
    ALIGN CENTER
    BACKGROUNDCOLOR 255 255 255
    COLOR 50 50 50
    IMAGECOLOR 255 255 255
    INTERVALS 4
    LABEL
      SIZE TINY
      TYPE BITMAP
      BUFFER 0
      COLOR 50 50 50
      FORCE FALSE
      MINDISTANCE -1
      MINFEATURESIZE -1
      OFFSET 0 0
      PARTIALS TRUE
    END
    OUTLINECOLOR 50 50 0
    POSITION LR
    POSTLABELCACHE TRUE
    SIZE 120 2
    STATUS OFF
    STYLE 0
    UNITS KILOMETERS
  END

  WEB
    IMAGEPATH "/tmp/ms_tmp/"
    IMAGEURL "/ms_tmp/"
    MAXSCALEDENOM 3e+06
    MINSCALEDENOM 100000
    QUERYFORMAT text/html
    LEGENDFORMAT text/html
    BROWSEFORMAT text/html
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_line_002"
    NAME "xxx_01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE LINE
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 66 66 66
        SIZE 1
        SYMBOL 1
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_line_001"
    NAME "xxx01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE LINE
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 99 99 99
        SIZE 2
        SYMBOL 1
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_line_004"
    NAME "xxy01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE LINE
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 99 99 99
        SIZE 2
        SYMBOL 1
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_line_007_3"
    NAME "fluss01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 107 174 214
        SIZE 1
        SYMBOL 1
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_poly_004"
    NAME "xyy01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE POLYGON
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 189 215 231
        OUTLINECOLOR 107 174 214
        SYMBOL 0
        WIDTH 1
      END
    END
  END

  LAYER
    CLASSITEM "value"
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from (SELECT gd_point_073.the_geom,gd_point_073.id as id, td_dim_geom.name as name,gd_point_073.oid,sum(td_theme_at_uba_ozon.value) as value FROM gd_point_073,td_theme_at_uba_ozon, td_dim_geom WHERE td_dim_geom.id = gd_point_073.id   AND gd_point_073.id = td_theme_at_uba_ozon.geom AND (td_theme_at_uba_ozon.year = '2004' ) AND (td_theme_at_uba_ozon.uba_ozon_type = 'jmw' ) GROUP BY gd_point_073.id,gd_point_073.the_geom,td_dim_geom.name,gd_point_073.oid  order by value desc) as foo using unique oid USING SRID=31297;"
    METADATA
      "LAYER_NAME"	"layer_xxx_100614_694d5fb11c67415"
      "DESCRIPTION"	"OZON, Jahresmittelwert"
      "GEOM_NAME"	"gd_point_073"
      "RESULT_FIELDS"	"id"
      "QUERY_TABLE"	"td_theme_at_uba_ozon"
    END
    NAME "layer_xxx_100614_694d5fb11c67415"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TOLERANCE 10
    TYPE POINT
    UNITS METERS
    CLASS
      NAME "&#8804; 40"
      EXPRESSION ([value] <= 40)
      STYLE
        ANGLE 360
        COLOR 171 221 164
        OUTLINECOLOR 30 30 30
        SIZE 10
        SYMBOL 1
        WIDTH 1
      END
      TEMPLATE "xxx"
    END
    CLASS
      NAME "> 40 - 50"
      EXPRESSION ([value] > 40 and [value] <= 50)
      STYLE
        ANGLE 360
        COLOR 171 221 164
        OUTLINECOLOR 30 30 30
        SIZE 16
        SYMBOL 1
        WIDTH 1
      END
      TEMPLATE "xxx"
    END
    CLASS
      NAME "> 50 - 60"
      EXPRESSION ([value] > 50 and [value] <= 60)
      STYLE
        ANGLE 360
        COLOR 171 221 164
        OUTLINECOLOR 30 30 30
        SIZE 22
        SYMBOL 1
        WIDTH 1
      END
      TEMPLATE "xxx"
    END
    CLASS
      NAME "> 60 - 70"
      EXPRESSION ([value] > 60 and [value] <= 70)
      STYLE
        ANGLE 360
        COLOR 171 221 164
        OUTLINECOLOR 30 30 30
        SIZE 28
        SYMBOL 1
        WIDTH 1
      END
      TEMPLATE "xxx"
    END
    CLASS
      NAME "> 70"
      EXPRESSION ([value] > 70)
      STYLE
        ANGLE 360
        COLOR 171 221 164
        OUTLINECOLOR 30 30 30
        SIZE 34
        SYMBOL 1
        WIDTH 1
      END
      TEMPLATE "xxx"
    END
  END

  LAYER
    CLASSITEM "value"
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from (SELECT gd_point_006.the_geom,gd_point_006.id as id, td_dim_geom.name as name,gd_point_006.oid,td_theme_at_topo_orte2.value as value FROM gd_point_006,td_theme_at_topo_orte2, td_dim_geom WHERE td_dim_geom.id = gd_point_006.id  AND td_dim_geom.id = td_theme_at_topo_orte2.geom AND td_dim_geom.id = gd_point_006.id AND (td_theme_at_topo_orte2.orte_type = 'class1' )  order by value desc) as foo using unique oid USING SRID=31297;"
    NAME "yyy01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE POINT
    UNITS METERS
    CLASS
      NAME "Bedeutende Stadt im Ausland"
      EXPRESSION "9"
      STYLE
        ANGLE 360
        COLOR 200 200 200
        OUTLINECOLOR 30 30 30
        SIZE 7
        SYMBOL 1
        WIDTH 1
      END
    END
    CLASS
      NAME "Bezirkshauptstadt"
      EXPRESSION "2"
      STYLE
        ANGLE 360
        COLOR 255 255 255
        OUTLINECOLOR 30 30 30
        SIZE 7
        SYMBOL 1
        WIDTH 1
      END
    END
    CLASS
      NAME "Landeshauptstadt"
      EXPRESSION "1"
      STYLE
        ANGLE 360
        COLOR 255 255 255
        OUTLINECOLOR 30 30 30
        SIZE 7
        SYMBOL 2
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from gd_line_006"
    NAME "xyx01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    OPACITY 75
    TYPE LINE
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 99 99 99
        SIZE 1
        SYMBOL 1
        WIDTH 1
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from (select gd_point_005_label.the_geom,gd_point_005_label.id,gd_point_005_label.oid,td_dim_geom.name from gd_point_005_label,td_dim_geom where gd_point_005_label.id = td_dim_geom.id) as foo using unique oid USING srid=31297"
    LABELITEM "name"
    NAME "blub"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE ANNOTATION
    UNITS METERS
    CLASS
      NAME "class0"
      LABEL
        ANGLE 0.000000
        ANTIALIAS TRUE
        FONT "arial"
        MAXSIZE 256
        MINSIZE 4
        SIZE 8
        TYPE TRUETYPE
        BUFFER 1
        COLOR 0 0 0
        FORCE FALSE
        MINDISTANCE 1
        MINFEATURESIZE -1
        OFFSET 0 0
        OUTLINECOLOR 255 255 255
        PARTIALS FALSE
        POSITION CC
      END
    END
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from (select gd_point_006.the_geom,gd_point_006.id,gd_point_006.oid,td_dim_geom.name from gd_point_006,td_dim_geom where gd_point_006.id = td_dim_geom.id) as foo using unique oid USING srid=31297"
    LABELITEM "name"
    NAME "blub01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    TYPE ANNOTATION
    UNITS METERS
    CLASS
      NAME "class0"
      LABEL
        ANGLE 0.000000
        ANTIALIAS TRUE
        FONT "arial"
        MAXSIZE 256
        MINSIZE 4
        SIZE 8
        TYPE TRUETYPE
        BUFFER 1
        COLOR 0 0 0
        FORCE FALSE
        MINDISTANCE 1
        MINFEATURESIZE -1
        OFFSET 0 -9
        OUTLINECOLOR 255 255 255
        PARTIALS FALSE
        POSITION CC
      END
    END
  END

  LAYER
    DATA "gd_raster_001.tif"
    NAME "test01"
    PROJECTION
      "init=epsg:31297"
    END
    STATUS ON
    OPACITY 15
    TYPE RASTER
    UNITS METERS
  END

  LAYER
    CONNECTION "user=xxx password=xxx dbname=xxx host=localhost"
    CONNECTIONTYPE POSTGIS
    DATA "the_geom from (select gd_point_073.the_geom,gd_point_073.id,gd_point_073.oid from gd_point_073,sys_select_data where gd_point_073.id = sys_select_data.geom and sys_select_data.id='any_100614_694d5fbc4fe2e9' ) as foo using unique oid USING srid=31297"
    NAME "QUERY_xxx"
    STATUS ON
    OPACITY 70
    TYPE POINT
    UNITS METERS
    CLASS
      NAME "class0"
      STYLE
        ANGLE 360
        COLOR 222 20 20
        OUTLINECOLOR 100 0 0
        SIZE 5
        SYMBOL 1
        WIDTH 1
      END
    END
  END

END


More information about the mapserver-users mailing list