سؤال

وأنا تطوير تطبيق ويب التي سوف تظهر على موقع مشروع في الخريطة. لدي هذه الوظيفة إضافة البيانات أريد أن تظهر للطبقة خريطة.

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);
    }
}

وكان هذا ريكومينديشن من الرجال في #mapserver قناة IRC. ولكنه لا يعمل! يمكن لأي شخص أن تساعد على معرفة لماذا لم يتم أظهر النقاط ؟؟؟

هل كانت مفيدة؟

المحلول

هل إنشاء classObj وstyleObj لطبقة الخاصة بك؟

وهنا هو نموذج التعليمات البرمجية الخاصة بي:

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top