[mapguide-users] Update Line Feature Class

akram akram at gsg-eg.com
Wed May 21 11:40:31 EDT 2008


Thank You Very Much Kenneth  I got it....... 

Kenneth Skovhede, GEOGRAF A/S writes: 

> Hello Akram. 
> 
> What you do here, is essentially copy a map's xml definition. Your step 1 
> is the same as calling resourceService.CopyResource(layerDefResId, 
> layerDefId).
> I can't see where your "newLayer" variable comes from (the one you 
> insert). 
> 
> If you already have a layer, it is much easier to include it in the map, 
> but keep it invisible. Then turn it on when you want to display it. That 
> would remove step 1 and 2.
> You only have to create a copy of the layer if you want to modify it for 
> the current session. If you want the layer to display another feature 
> source, you must update the xml in step 1. 
> 
> Step 3 looks OK.
> In step 4, I think you have used the id of the layerdefinition, rather 
> than the id of the featuresource. I am not sure you can do that. 
> 
> If step 3 and 4 are completed, a refresh of the map should display your 
> new feature.
> Perhaps the coordinates are misplaced, so the feature is inserted outside 
> the map?
> If you have access to MapGuide Studio, you can preview your feature 
> source, and see the actual data rows.
> With that, you can verify that there is an added row. 
> 
> Regards, Kenneth Skovhede, GEOGRAF A/S 
> 
>  
> 
> akram skrev:
>> Hi Kenneth, Hi All, 
>> 
>> I would like to create new Line (MgFeatureGeometricType.Curve) Layer , 
>> and create line feature in this new Layer , I worked with follwoing 
>> steps: 
>> 
>> 1.Take Layer Definition for Exsisting Line Layer and SetResource as 
>> following 
>> 
>> MgByteReader byteReader = 
>> resourceService.GetResourceContent(layerDefResId); XmlDocument doc = new 
>> XmlDocument(); String xmlLayerDef = byteReader.ToString(); 
>> doc.LoadXml(xmlLayerDef); String xmlString = 
>> doc.DocumentElement.OuterXml; MgResourceIdentifier layerDefId = new 
>> MgResourceIdentifier("Session:" + GetParameter(this.args, "SESSION") + 
>> "//NewLayer.LayerDefinition"); resourceService.SetResource(layerDefId, 
>> new MgByteReader(xmlString, "text/xml"), null); 
>> 
>> 2. Insert New Layer 
>> 
>> layers.Insert(layers.IndexOf(layer), newLayer); 
>> 
>> 3.Create Line Geometry 
>> 
>> MgLinearRing Line = geometryFactory.CreateLinearRing(coordinateColl); 
>> MgGeometry Geom = geometryFactory.CreatePolygon(Line, null); 
>> 
>> 4.Write Geometry and Update Featur Service 
>> 
>> propertyValues.Add(new MgGeometryProperty("Geometry", byteReader1)); 
>> updateCommands.Add(new MgInsertFeatures(className, propertyValues)); 
>> MgFeatureService featureService = 
>> (MgFeatureService)this.site.CreateService(MgServiceType.FeatureService); 
>> featureService.UpdateFeatures(layerResId, updateCommands, false); 
>> 
>> 5. Save map and refresh 
>> 
>> after previouse steps No thing appear , No bugs , No Result , Only 
>> NewLayer Created 
>> 
>> Can you help me plz to update Exsisting Line Layer ? 
>> 
>> Best Regards 
>> 
>> Akram 
>> 
>> ------------------------------------------------------------------------ 
>> 
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users 
>> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20080521/34919d18/attachment.html


More information about the mapguide-users mailing list