[Mapserver-users] unclear on the concept
Lowell Filak
lfilak at medinaco.org
Fri Jul 23 06:28:19 PDT 2004
Doesn't $so need to be MS_SHAPE_LINE instead of MS_SHAPE_POINT ?
Lowell
The following message was sent by Joel Gwynn <joelman at joelman.com> on
Fri, 23 Jul 2004 00:26:20 -0400.
> The shapeindex numbers I'm getting don't seem to correspond to any
> values in my "cities" table. Even so, I would hope that I could
> retrieve all the feature info from the mapserver object without opening
> up a separate database connection. Is this not so?
>
> I'm just having trouble finding the specific syntax to get information
> about individual points on a point layer. Here's what I would think
> might work, but of course it's not.
>
> my $so = new mapscript::shapeObj($mapscript::MS_SHAPE_POINT);
> ...
> if(my $r = $city_layer->queryByPoint($map, $boston,
> $mapscript::MS_MULTIPLE,10)){
> print "no results.\n";
> }else{
> my $i = 0;
> print "status: $r\n";
> while(my $rc = $city_layer->getResult($i)){
> my $si = $rc->{shapeindex};
> $r = $city_layer->getShape($so, 0, $si);
> print "getShape: $r\n";
> my $point = new mapscript::pointObj();
> $point = $so->get(0);
> print $point->{x}.' '.$point->{y}
> }
>
> What really obvious syntax am I missing?
>
> Thanks,
> Joel
>
> Lowell Filak wrote:
>
> >I don't know postgis but I would suspect that the query you want to do
> >could be done directly in postgis.
> >Excluding that as a possibility, the shapeindexes you receive back
> >should be the sequential number of the shape/attribute record as they
> >occur in the postgres table. You should be able to retrieve the shape
> >into a shapeObj via $layer->getShape($shape, 0, $si).
> >
> >HTH
> >
> >Lowell
> >
> >The following message was sent by Joel Gwynn <joelman at joelman.com> on
> >Wed, 21 Jul 2004 23:43:20 -0400.
> >
> >
> >
> >>Perhaps I'm going about this the wrong way. I'm using perl mapscript,
> >>and I've got a postgis points layer and I want to get some points, say
> >>within a certain radius of Boston:
> >>
> >>my $map = new mapscript::mapObj("$map_path/world_cities.map");
> >>my $boston = new mapscript::pointObj(-71.1029968261719, 42.375);
> >>my $city_layer = $map->getLayer(1);
> >>
> >>if(my $r = $city_layer->queryByPoint($map, $boston,
> >>$mapscript::MS_MULTIPLE,10)){
> >> print "no results.\n";
> >>}else{
> >> my $i = 0;
> >> print "status: $r\n";
> >> while(my $rc = $city_layer->getResult($i)){
> >> my $si = $rc->{shapeindex};
> >> print "shapeindex: $si\n";
> >> $i++;
> >> }
> >>}
> >>
> >>This prints out a bunch of shapeindex numbers. What are those numbers?
> >>They don't seem to show up in my cities table in the database. Can I
> >>use the mapscript object to access the points?
> >>_______________________________________________
> >>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