[mapguide-users] [ZS0] Combining features

A H hizperion at hotmail.com
Mon Feb 2 01:45:59 EST 2009


eep..forgot to cast it. ok thats all for now. thanks for the help.



A H wrote:
> 
> ok thanks, this is what i have:
> 
> 		MgPolygonCollection polygons = new MgPolygonCollection();
> 		MgAgfReaderWriter geometryReaderWriter = new MgAgfReaderWriter();
> 		MgGeometryFactory geometryFactory = new MgGeometryFactory();
> 		
> 		while(featureReader.ReadNext())
> 		{
> 			MgByteReader temp = featureReader.GetGeometry("GEOM");
> 			MgPolygon polygon = (MgPolygon) geometryReaderWriter.Read(temp);
> 			polygons.Add(polygon);
> 		}
> 
> 		MgMultiPolygon newPolygon =
> geometryFactory.CreateMultiPolygon(polygons);
> 		
> 		MgByteReader geom = geometryReaderWriter.Write(newPolygon);
> 
> but the ,MgPolygon tempPoly = geometryReaderWriter.Read(temp); part didn't
> work.
> how can i easily create a MgPolygon using MgGeometry?
> 
> 
> 
> Kenneth Skovhede, GEOGRAF A/S wrote:
>> 
>> Perhaps you are looking for a MultiPolygon object?
>> http://mapguide.osgeo.net/files/mapguide/docs/webapi/d3/dc6/class_mg_multi_polygon.html
>> 
>> For creating a MultiPolygon, look here:
>> http://mapguide.osgeo.net/files/mapguide/docs/webapi/d4/d46/class_mg_geometry_factory_bcbcf723fb0d1e58dbd7e030ed34022f.html#bcbcf723fb0d1e58dbd7e030ed34022f
>> 
>> If you have other objects besides polygons, you need a 
>> GeometryCollection object, but that is poorly supported IMO.
>> 
>> Regards, Kenneth Skovhede, GEOGRAF A/S
>> 
>> 
>> 
>> A H skrev:
>>> this should be easy, but i'm still having trouble figuring out.
>>>
>>> i have a system that allow user to draw multiple polygons, and save the
>>> polygon into a spatial database.
>>>
>>> i have this code
>>>
>>> 		MgFeatureQueryOptions queryStr = new MgFeatureQueryOptions();
>>> 		queryStr.SetFilter("ID > 0");
>>> 		MgFeatureReader featureReader = polyLayer.SelectFeatures(queryStr);
>>> 		
>>> 		featureReader.ReadNext();
>>> 		MgByteReader geom = featureReader.GetGeometry("GEOM");
>>>
>>> 		MgPropertyCollection properties = new MgPropertyCollection();
>>> 		
>>> 		properties.Add(new MgInt64Property("AREA_ID", areaID));
>>> 		properties.Add(new MgStringProperty("AREA_NAME", areaName));
>>> 		properties.Add(new MgGeometryProperty(GEOM_PROPERTY, geom));
>>>
>>>
>>> but this will only get geometry of 1 of the polygons.
>>> can someone help me to modify this so that it save all the polygons into
>>> 1
>>> new area that consist of the polygons in 'geom'?
>>>
>>> i'm thinking of something like:
>>>
>>>    while(featureReader.ReadNext())
>>>    {
>>>        // store the results into 1 geometry
>>>        // read into MgByteReader
>>>    }
>>>
>>>
>>>   
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>> 
>> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/Combining-features-tp2249387p2256747.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list