Dynamic map layer with Mapserver's C# MapScript
Question
I'm developing a web app that will show the location of a project in a map. I have this function add the data I want to show to a map layer.
protected void AgregarPunto(DataTable result)
{
layerObj thislayer = util.MSMap.getLayerByName("poi");
foreach (DataRow dr in result.Rows)
{
shapeObj shp = new shapeObj(mapscript.MS_SHP_POINTM);
shp = shapeObj.fromWKT(dr["the_geom"].ToString());
thislayer.addFeature(shp);
}
}
This was a recomendation from the guys at #mapserver IRC Channel. But it doesn't work! Can somebody help to figure out why the points are not showed???
Solution
Do you create a classObj and styleObj for your layer ?
Here is my code sample:
myLayer.type = OSGeo.MapServer.MS_LAYER_TYPE.MS_LAYER_LINE;
myLayer.status = 1;
myLayer.symbolscaledenom = 1;
// Create a mapping class
OSGeo.MapServer.classObj myClass = new OSGeo.MapServer.classObj(myLayer);
// Create a style
OSGeo.MapServer.styleObj style = new OSGeo.MapServer.styleObj(myClass);
// unitColor = new Color(12, 34, 56);
int red = Convert.ToInt32(unitColor.R);
int green = Convert.ToInt32(unitColor.G);
int blue = Convert.ToInt32(unitColor.B);
style.color.setRGB(red, green, blue);
style.outlinecolor.setRGB(255, 255, 255);
//style.symbol = _map.symbolset.index("circle"); // Here '_map' is an instance of mapObj, this line is not strictly necessary
style.size = 10;
style.minsize = 3; // Change this to your needs
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow