[mapguide-users] How do I add New Class Property to Existing SDF
(php)
Bob Cassarly
bob.cassarly at famis.com
Tue Oct 21 10:58:25 EDT 2008
I have been looking for a way to add a new property to an existing class of
an existing SDF file. Basically I want to add a new data column to an SDF.
All of the examples I have seen that deal with properties/classes create new
SDFs, add the classes then add the data/geom to the SDF. I suppose I could
make this work by copying data/geom from one SDF to another but I would
prefer to just modify the original SDF.
The code below works however I have been unable to figure how to apply/save
the schema/class changes to the SDF. Maybe this is not possible in MapGuide
API?
Here is what I have come up with so far..
//get the SDF
$resourceName = "Library://Temp/MySDF.FeatureSource";
$resourceId = new MgResourceIdentifier($resourceName);
//create the new Property
$newProperty = new MgDataPropertyDefinition("MyNewProperty");
$newProperty->SetDataType(MgPropertyType::String);
$newProperty->SetLength(50);
$newProperty->SetNullable(true);
//get the existing class from the existing sdf
$schemaName = "MySchema";
//create a "new" class from the existing class defined in the SDF
$newClass = $featureService->GetClassDefinition($resourceId, $schemaName,
"MyClass");
//add the new property to the new class
$newClass->GetProperties()->Add($newProperty);
//get-save the new class
$featureService =
$siteConnection->CreateService(MgServiceType::FeatureService);
$schema = $featureService->DescribeSchema($resourceId, $schemaName);
//get the classes from the schema
$classes = $schema->GetItem(0)->GetClasses();
//add the new class
$classes->Add($newClass);
Bob Cassarly
Sr. Developer
FAMIS Software, Inc.
bob.cassarly at famis.com
www.famis.com <http://www.famis.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20081021/4ded7db7/attachment.html
More information about the mapguide-users
mailing list