[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