So far I think this is the main part of buffer.aspx that I need to modify

MgFeatureQueryOptions query = new MgFeatureQueryOptions();
query.SetFilter(filter);

MgResourceIdentifier featureSource = new
MgResourceIdentifier(selLayer.GetFeatureSourceId());

MgFeatureReader features = featureSrvc.SelectFeatures(featureSource,
featureClassName, query);

if (features.ReadNext())
{
        MgClassDefinition classDef = features.GetClassDefinition();
        String geomPropName = classDef.GetDefaultGeometryPropertyName();
        do
        {
                MgByteReader geomReader = features.GetGeometry(geomPropName);
                MgGeometry geom = agfRW.Read(geomReader);

                if (merge == 0)
                {
                        geomBuffer = geom.Buffer(dist, measure);
                        if (geomBuffer != null)
                        {
                                if (srsXform != null)
                                        geomBuffer = 
(MgGeometry)geomBuffer.Transform(srsXform);
                                *AddFeatureToCollection(propCollection, agfRW, 
featId++, geomBuffer);*
                                bufferFeatures++;
                        }
                }
                else
                {
                        if (srsXform != null)
                                geom = (MgGeometry)geom.Transform(srsXform);
                        inputGeometries.Add(geom);
                }
        }
        while (features.ReadNext());

        features.Close();
}

void *AddFeatureToCollection*(MgBatchPropertyCollection propCollection,
MgAgfReaderWriter agfRW, int featureId, MgGeometry featureGeom)
{
    MgPropertyCollection bufferProps = new MgPropertyCollection();
    MgInt32Property idProp = new MgInt32Property("ID", featureId);
    bufferProps.Add(idProp);
    MgByteReader geomReader = agfRW.Write(featureGeom);
    MgGeometryProperty geomProp = new MgGeometryProperty("GEOM",
geomReader);
    bufferProps.Add(geomProp);
    propCollection.Add(bufferProps);
}

If I'm close, I need to modify the AddFeatureToCollection to add the
selected points of my map, as I stated before, I want to create a new layer
from selected points and I need to keep the layer information in that new
layer

I tried to do something like this instead (based on this:
http://code.google.com/p/mapguide-contrib/source/browse/trunk/Libraries/DotNet/OSGeo.MapGuide.Extensions/OSGeo.MapGuide.Extensions/MgFeatureRepository.cs)

MgFeatureQueryOptions query = new MgFeatureQueryOptions();
query.SetFilter(filter);

MgResourceIdentifier featureSource = new
MgResourceIdentifier(selLayer.GetFeatureSourceId());

MgFeatureReader features = featureSrvc.SelectFeatures(featureSource,
featureClassName, query);

MgClassDefinition classDef = features.GetClassDefinition();
                                
string[] propNames = features.GetPropertyNames();
if (features.ReadNext())
{

        MgPropertyCollection res = features.ReadFeature(propNames);
        propCollection.Add(res);
        
}
features.Close();

But I get this error message: 'ReadFeature' doesn't exist in context.

How can I store the selected elements of the map in a
MgBatchPropertyCollection in order to create the new layer?




--
View this message in context: 
http://osgeo-org.1560.n6.nabble.com/Add-layer-dinamically-from-search-results-tp5033775p5035298.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users

Reply via email to