[mapguide-internals] question about inserting features

Paul Spencer pspencer at dmsolutions.ca
Wed Jul 18 10:10:16 EDT 2007


Hi Traian,

its an SDF file.  I did end up getting contains to work using a  
negative buffer, but I am currently working on a different solution  
that is (hopefully) less error prone than doing a spatial selection  
to get back the feature that I inserted.  This is all just a work- 
around for not being able to access the newly inserted features  
through the result object.

Cheers

Paul

On 18-Jul-07, at 9:52 AM, Traian Stanev wrote:

> At least some of these should have worked. I am late to the thread,  
> so I
> may have missed this, but what data source are you inserting the  
> feature
> into (SDF, SHP, some DB?)
>
> Traian
>
> -----Original Message-----
> From: mapguide-internals-bounces at lists.osgeo.org
> [mailto:mapguide-internals-bounces at lists.osgeo.org] On Behalf Of Paul
> Spencer (External)
> Sent: Tuesday, July 17, 2007 10:27 PM
> To: Paul Spencer (External)
> Cc: MapGuide Internals Mail List
> Subject: Re: [mapguide-internals] question about inserting features
>
> Another problem (potential problem) has cropped up.  I thought that I
> could provide a mechanism to do this by performing a select after
> insert and using a spatial filter that had the geom that was inserted
> and an operation of Equals.  Doesn't work.  I also tried CoveredBy
> using a buffered version of the geometry.  Doesn't work either.
>
> Should any of these strategies work?
>
> Paul
>
> On 17-Jul-07, at 8:19 AM, Paul Spencer wrote:
>
>> Hi Trevor ... nice thought ...  GetPropertyType() returns 12,
>> MgPropertyType::Feature ... This makes sense because the identity
>> property of a feature source may be composed of several attributes
>> so there wouldn't necessarily be a single value.
>>
>> I hadn't checked the property type before, but I did print_r($res-
>>> GetItem(0)->GetValue()) and it told me it was an
>> mg_feature_reader_obj (or something like that) and ReadNext() also
>> did not fail - it is only the calls to get at the properties that
>> fail with a null reference.
>>
>> Cheers
>>
>> Paul
>>
>> On 16-Jul-07, at 5:54 PM, Trevor Wekel wrote:
>>
>>> Hi Paul,
>>>
>>> I wonder if UpdateFeatures returns the identity property for the
>>> inserted property and not an MgFeatureReader.  Try calling
>>> res->GetItem(0)->GetPropertyType() and see what the type is.
>>>
>>> Thanks,
>>> Trevor
>>>
>>> -----Original Message-----
>>> From: mapguide-internals-bounces at lists.osgeo.org
>>> [mailto:mapguide-internals-bounces at lists.osgeo.org] On Behalf Of  
>>> Paul
>>> Spencer (External)
>>> Sent: Monday, July 16, 2007 3:27 PM
>>> To: MapGuide Internals Mail List
>>> Subject: [mapguide-internals] question about inserting features
>>>
>>> Hi all,
>>>
>>> when inserting new features into a feature source, the (php) code
>>> looks like this:
>>>
>>> $className = $layer->GetFeatureClassName();
>>> $cmd = new MgInsertFeatures($className, $drawProps);
>>> $commands = new MgFeatureCommandCollection();
>>> $commands->Add($cmd);
>>> $res = $featureService->UpdateFeatures($dataSourceId, $commands,
>>> false);
>>>
>>> this works great.  What I would like to do is access the newly
>>> created feature.  According to the documentation, the result of
>>> UpdateFeatures is an MgPropertyCollection which should have one
>>> property, of type MgFeatureProperty whose value is an  
>>> MgFeatureReader
>>> that contains the set of properties inserted into the datastore by
>>> the insert command.
>>>
>>> When I try to get access to the properties, I receive an error
>>>
>>>   - MgFeatureReader.GetPropertyCount line 29 file .\Services
>>> \FeatureReader.cpp
>>>
>>> This happens with the following code:
>>>
>>> $featureReader = $res->GetItem(0)->GetValue();
>>> while ($featureReader->ReadNext()) {
>>>      $nProps = $featureReader->GetPropertyCount();
>>>      // would do something more here if it didn't crap out
>>> }
>>>
>>> Is this the right way to access a newly inserted feature?  If not,
>>> then how should I do it?  If yes, is the code wrong or is there a  
>>> bug
>>> somewhere?
>>>
>>> Cheers
>>>
>>> Paul
>>> +-----------------------------------------------------------------+
>>> |Paul Spencer                          pspencer at dmsolutions.ca    |
>>> +-----------------------------------------------------------------+
>>> |Chief Technology Officer                                         |
>>> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
>>> +-----------------------------------------------------------------+
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> mapguide-internals mailing list
>>> mapguide-internals at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>>
>>> _______________________________________________
>>> mapguide-internals mailing list
>>> mapguide-internals at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>
>> +-----------------------------------------------------------------+
>> |Paul Spencer                          pspencer at dmsolutions.ca    |
>> +-----------------------------------------------------------------+
>> |Chief Technology Officer                                         |
>> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
>> +-----------------------------------------------------------------+
>>
>>
>>
>>
>>
>
> +-----------------------------------------------------------------+
> |Paul Spencer                          pspencer at dmsolutions.ca    |
> +-----------------------------------------------------------------+
> |Chief Technology Officer                                         |
> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+
>
>
>
>
>
> _______________________________________________
> mapguide-internals mailing list
> mapguide-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>
>
> _______________________________________________
> mapguide-internals mailing list
> mapguide-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-internals

+-----------------------------------------------------------------+
|Paul Spencer                          pspencer at dmsolutions.ca    |
+-----------------------------------------------------------------+
|Chief Technology Officer                                         |
|DM Solutions Group Inc                http://www.dmsolutions.ca/ |
+-----------------------------------------------------------------+







More information about the mapguide-internals mailing list