[Mapserver-users] Problems with queryByRect() in Perl with 3.6.4

Lowell Filak lfilak at medinaco.org
Tue Dec 2 11:26:00 EST 2003


I believe you need a "TEMPLATE" defined for the guage layer for it to be
query(able) even if it's a bogus template.

Lowell

The following message was sent by "PATTERSON KENNETH ALLEN"
<kapatter at srpnet.com> on Mon, 1 Dec 2003 11:23:03 -0700.

> 
> I am trying to query the mapfile to get all point shapes within a
rectangle.  I have a very simple shape file with three layers.  One
layer contains point data (gauge).  After the call to $gLayer
->queryByRect( $ms, $rectang ) that returns 1, I call $gLayer
->getResult(0).  GetResult(0) returns nothing and $gLayer ->{resultcach}
is also empty.  What is going on?  I've checked through the archive and
find some discussions like this but none have given me any insight.  I
am able to draw and see all the data just fine.
> 
> This is the code (more or less):
> 
> 	my $gLayer = $msMap->getLayerByName( "gauge" );
> 	if (!$gLayer) {
> 		print "\tError: unable to find layer we want\n";
> 		return( 0 );
> 	}
> 
> 	my $rectang = new mapscript::rectObj();
> 
> 	# Just load up the full extent.
> 	$rectang->{minx} = $msMap->{extent}->{minx};
> 	$rectang->{maxx} = $msMap->{extent}->{maxx};
> 	$rectang->{miny} = $msMap->{extent}->{miny};
> 	$rectang->{maxy} = $msMap->{extent}->{maxy};
> 	
> 	print "\tCurrent Query Rectangle (minx, maxx, miny, maxy):\n";
> 	print "\t\t($rectang->{minx}, $rectang->{maxx}, 	$rectang->{miny},
$rectang->{maxy} )\n";
> 
> 	my $query_status = $gLayer->queryByRect( $msMap, $rectang );
> 	print "\tQuery Status = $query_status\n";
> 	
> 	my $result_mem = $gLayer->getResult(0);
> 	my $result_cache = $gLayer->{resultcache};
> 	print "\t\tGauge layer query results: $query_status, $result_mem,
$result_cache\n";
> 
> 
> This produces the following output:
> 
> 	Current Query Rectangle (minx, maxx, miny, maxy):
> 		(-114.8, -109.06, 31.2808666666667, 37.0231333333333 )
> 	Query Status = 1
> 		Gauge layer query results: 1, , 
> 
> --------------------------------------------------------
> My mapfile is:
> #
> # Start of map file
> #
> NAME HyTest
> STATUS ON
> SIZE 600 600
> # SRP Extent
> EXTENT -114.8 31.3 -109.06 37.004
> #
> UNITS dd
> SHAPEPATH "/var/www/html/hymap/data"
> IMAGECOLOR 0 0 0 # Black colored background
> TRANSPARENT on
> FONTSET "/var/www/cgi-bin/prod/fontset.txt"
> IMAGETYPE PNG
> (Blah, blah, blah)
> 
> #
> # Start of layer definitions
> #
> 
> LAYER
>   NAME "All Roads"
>   TYPE LINE
>   GROUP Geographical
>   STATUS on
>   DATA .../roads3.shp"
>   CLASS
>     NAME 'All Roads'
>     #COLOR 100 100 100 # Colors for Gray Background
>     COLOR 150 150 150 # Colors for Black/White Background
> 	TEXT ([HWYNAME])
>     LABEL
> 	  TYPE TRUETYPE
> 	  FONT universB
> 	  ANTIALIAS TRUE
> 	  ANGLE AUTO
>       POSITION AUTO
> 	  MINSIZE 6
> 	  MAXSIZE 6
>       MINFEATURESIZE 200
>       MINDISTANCE 300
>       #COLOR 100 100 100  # Colors for Gray Background
>       COLOR 150 150 150  # Colors for Black/White Background
> 	  OFFSET 0 2
>     END # Label
>   END
> END # All roads
> 
> 
> LAYER
> 	NAME "gauge"
> 	GROUP "Point Source Data"
> 	TYPE POINT
> 	STATUS ON
> 	DATA "...gauge.shp"
> 
> 	CLASS
> 		NAME 'gauge'
> 		STATUS ON
> 		COLOR 0 200 0
> 		SYMBOL 'circle'
> 		MINSCALE 800000
> 		SIZE 4
> 	END # Class
> 
> 	CLASS
> 		NAME 'gauge'
> 		STATUS ON
> 		COLOR 0 200 0
> 		SYMBOL 'circle'
> 		MINSCALE 100
> 		MAXSCALE 800000
> 		SIZE 8
> 		TEXT ([DB_NM]|[STATN_ID])					
> 		LABEL
> 			BACKGROUNDCOLOR 80 80 80
> 			TYPE TRUETYPE
> 			FONT helmetBI
> 			MINSIZE 7
> 			MAXSIZE 12
> 			PARTIALS FALSE
> 			BUFFER 2
> 			MINFEATURESIZE 40
> 			MINDISTANCE 50
> 			OFFSET 0 4
> 			POSITION LC
> 			WRAP "|"
> 			COLOR 250 250 0
> 		END  #LABEL
> 	END # Class
> 
> end # mapfile
> 
> 
> 
> 
> 
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users




More information about the mapserver-users mailing list