Example #1
0
        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="kml">图片kml</param>
        /// <param name="layerName">图层名称</param>
        /// <returns></returns>
        public IMFElement CreateElement(Kml kml, string layerName)
        {
            KmlPicture   kmlPicture = kml.Placemark.Graph as KmlPicture;
            Picture_Mgis pointMgis  = new Picture_Mgis();

            if (kmlPicture.Position == null)
            {
                return(null);
            }
            ulong moveObj = 0;

            if (!string.IsNullOrEmpty(kmlPicture.IconUrl))//图片型目标
            {
                moveObj = mapControl.createImageMoveObject(kmlPicture.IconUrl, layerName);
                if (kmlPicture.IconColor.ToArgb() != 0)
                {
                    mapControl.setMoveObjectColor(moveObj, kmlPicture.IconColor.R, kmlPicture.IconColor.G, kmlPicture.IconColor.B, kmlPicture.IconColor.A);//设置目标颜色
                }
            }
            else //字体型目标
            {
                if (kmlPicture.IconColor.ToArgb() == 0)
                {
                    mapControl.setMoveObjectColor(moveObj, Color.Blue.R, Color.Blue.G, Color.Blue.B, Color.Blue.A);//设置目标颜色
                }
                else
                {
                    mapControl.setMoveObjectColor(moveObj, kmlPicture.IconColor.R, kmlPicture.IconColor.G, kmlPicture.IconColor.B, kmlPicture.IconColor.A);//设置目标颜色
                }
                moveObj = mapControl.createMoveObject(kmlPicture.FontPath, kmlPicture.Code, layerName);
            }
            mapControl.setMoveObjectPositon(moveObj, kmlPicture.Position.Lng, kmlPicture.Position.Lat, 1); //设置目标位置
            mapControl.setMoveObjectScale(moveObj, kmlPicture.Scale, kmlPicture.Scale);                    //设置目标大小
            if (!string.IsNullOrEmpty(kmlPicture.Description))
            {
                mapControl.setMoveObjectTrackUserData(moveObj, kmlPicture.Description);
            }
            mapControl.setMoveObjectProperty(moveObj, "名称", kml.Placemark.Name);
            pointMgis.SetMoveObj(moveObj);

            return(pointMgis);
        }