Call to undefined method getFeature

Christopher Wellen christopher.wellen at MAIL.MCGILL.CA
Thu Jun 28 10:40:43 EDT 2007


Thanks very much Pietro! I'm sure this will help many mapscript newbies!

Chris

Pietro Giannini wrote:
> Chris,
> I don't read the reference, which doc?
> I use mapscript 4.10 and, like you, function getShape don't exists.
>
> to get attributes I do:
>
> $obj_layer = $obj_map->getLayerByName("name_of_layer");
> $obj_layer->queryByRect($a_obj_rect);
> // or queryBYPoint, or queryByAttributes...
> $obj_layer->open();
> $i_numres = $obj_layer->getNumResults();
> for ($i=0;$i<$i_numres;$i++) {
>    $resCache = $obj_layer->getResult($i);
>    $sh = $obj_layer->getShape(resCache->tileindex,$resCache->shapeindex);
>    print_r($sh->values);
> }
> $obj_layer->close();
>
> I hope it is useful.
>
> ciao
> ...............................pg
>
>
>
>
> Pietro Giannini
> Bytewise srl - Area GIS
> 41°50'38.58"N 12°29'13.39"E
>
>
>
>   
>> Thanks Pietro, though the reference did mention that the getShape method
>> was deprecated in favor of the getFeature one. This begs the question of
>> exactly how I would get the attributes associated with a particular shape.
>>
>> Chris
>>
>> Pietro Giannini wrote:
>>     
>>> Hi Christopher,
>>>
>>> there is no mapscript function layerobj::getFeature(), maybe you need
>>> the
>>> layeroby::getShape().
>>>
>>> (Effectively getFeature is a more exact name for this function: a
>>> "shape"
>>> don't have attributes, a "feature" is a shape with attributes)
>>>
>>> take a look here:
>>> http://mapserver.gis.umn.edu/docs/reference/phpmapscript-class/classes/layerobj
>>>
>>> ciao
>>> .........................pg
>>>
>>>
>>>
>>>
>>> Pietro Giannini
>>> Bytewise srl - Area GIS
>>> 41°50'38.58"N 12°29'13.39"E
>>>
>>>
>>>
>>>
>>>
>>>       
>>>> *Hi all,
>>>>
>>>> I'm having some trouble getting the getFeature method to work on a
>>>> layer
>>>> object. Here's the error I get:
>>>>
>>>> Fatal error*: Call to undefined method ms_layer_obj::getFeature() in
>>>> *C:\ms4w\Apache\htdocs\test.php* on line *10
>>>>
>>>> And the php code:
>>>>
>>>> <?php
>>>> dl("php_mapscript.dll");
>>>> dl("php_dbase.dll");
>>>> dl("php_curl.dll");
>>>>
>>>>
>>>> $shape_id = 1;
>>>> $map = ms_newMapObj("c:\ms4w\apache\htdocs\es.map");
>>>> $this_layer = $map->getLayerByName('pn_points');
>>>> $attribute = $this_layer->getFeature(1, -1);
>>>> echo "ok";
>>>> ?>
>>>>
>>>> and the mapfile:
>>>>
>>>> # This is our fifth map file
>>>> NAME "es"
>>>> UNITS meters
>>>> EXTENT 167000 5814000 542300 5948000
>>>> SIZE 640 480
>>>> IMAGECOLOR 255 255 255
>>>> IMAGETYPE PNG
>>>> SHAPEPATH "c:\ms4w\apache\htdocs\wem\"
>>>> FONTSET "c:\ms4w\apache\htdocs\fontset.txt"
>>>>
>>>> WEB
>>>>     IMAGEPATH "/ms_temp/"
>>>>     IMAGEURL "http://132.206.251.215/ms_temp/"
>>>> END
>>>>
>>>> #####################################
>>>> # placenames layer - points
>>>> #
>>>> LAYER
>>>>     NAME "pn_points"
>>>>     DATA "points_ID_real"
>>>>     STATUS on
>>>>     TYPE point
>>>>     CLASS
>>>>          STYLE
>>>>               SIZE 1
>>>>               COLOR 100 100 200
>>>>          END
>>>>     END
>>>> END
>>>>
>>>>
>>>> END # mapfile
>>>>
>>>> Any ideas? I'm totally stumped. I don't know if its the software
>>>> (mapserver
>>>> 4.10, mapscript 4.10, php 5)or a mistake I've made that is eluding me.
>>>> *
>>>>
>>>> --
>>>> Christopher Wellen
>>>> M.Sc. Candidate
>>>> Department of Geography
>>>> McGill University
>>>> Montreal, Quebec
>>>> Burnside Hall room 428
>>>> 805 Sherbrooke Street West
>>>> Montreal, Quebec H3A 2K6
>>>> skype: christopher.wellen
>>>> MSN: christopher.wellen at mail.mcgill.ca
>>>> home: 514-509-9476
>>>> cell: 514-585-5138
>>>>
>>>>
>>>>         
>>>
>>>       
>> --
>> Christopher Wellen
>> M.Sc. Candidate
>> Department of Geography
>> McGill University
>> Montreal, Quebec
>> Burnside Hall room 428
>> 805 Sherbrooke Street West
>> Montreal, Quebec H3A 2K6
>> skype: christopher.wellen
>> MSN: christopher.wellen at mail.mcgill.ca
>> home: 514-509-9476
>> cell: 514-585-5138
>>
>>     
>
>
>   


-- 
Christopher Wellen
M.Sc. Candidate
Department of Geography
McGill University
Montreal, Quebec
Burnside Hall room 428
805 Sherbrooke Street West
Montreal, Quebec H3A 2K6
skype: christopher.wellen
MSN: christopher.wellen at mail.mcgill.ca
home: 514-509-9476
cell: 514-585-5138



More information about the mapserver-users mailing list