[Mapserver-users] unclear on the concept

Lowell Filak lfilak at medinaco.org
Fri Jul 23 09:28:19 EDT 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