1 package Geo::USCensus::TIGERweb::Layer;
5 use base 'Geo::USCensus::TIGERweb';
7 my %geometryTypeGuess = (
8 'x' => 'esriGeometryPoint',
9 'points' => 'esriGeometryMultiPoint',
10 'paths' => 'esriGeometryPolyLine',
11 'rings' => 'esriGeometryPolygon',
15 my ($self, %param) = @_;
16 my $g = $param{geometry} or die 'query: geometry required';
17 if (!$param{geometryType}) {
18 foreach (keys %geometryTypeGuess) {
19 if (exists $g->{$_}) {
20 $param{geometryType} = $geometryTypeGuess{$_};
25 my $fields = delete $param{fields};
26 die 'query: fields required' if !$fields;
27 $param{outFields} = $fields;
28 # set a spatial reference in a sensible way
29 my $wkid = $param{inSR} ||= '4326';
30 $param{outSR} ||= $wkid;
32 # default to find features that intersect
33 $param{'spatialRel'} ||= 'esriSpatialRelIntersects';
35 return $self->request('query', \%param);