[Mapserver-users] unclear on the concept

Joel Gwynn joelman at joelman.com
Fri Jul 23 00:26:20 EDT 2004


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