Пример #1
0
        /// <summary>
        /// 加载WFS矢量地图服务
        /// </summary>
        /// <param name="WFSURl">获取范围URL</param>
        /// <param name="URl">服务URL</param>
        /// <param name="ServerName">服务名称</param>
        public void LoadWFS(ISGWorld61 sgworld, string WFSURl, string URl, string ServerName)
        {
            XmlDocument doc = new XmlDocument();

            doc = GetXMLFromUrl(WFSURl);

            XmlNodeList Childrennodes = doc.ChildNodes;
            XmlNode     Childrennode  = Childrennodes[1];
            XmlNode     FeatureType   = Childrennode.ChildNodes[3].FirstChild;

            string LayerName = FeatureType.FirstChild.InnerXml;
            string Connstr   = URl;

            Connstr = "Server=" + Connstr + ";User=admin;WFSVersion=1.0.0;LayerName=";
            // string Connstr = "Server=http://gisserver:8399/arcgis/services/line2/MapServer/WFSServer;User=admin;WFSVersion=1.0.0;LayerName=line2:WGSline1;TEPlugName=WFS;";
            Connstr = Connstr + "" + LayerName + "" + ";TEPlugName=WFS;";
            try
            {
                ILayer61 pILayer   = sgworld.Creator.CreateFeatureLayer(ServerName, Connstr, 0);
                string   wellKtext = sgworld.CoordServices.ChooseCSDialog("", "");
                pILayer.CoordinateSystem.WellKnownText = wellKtext;

                pILayer.Reproject = true;
                pILayer.Load();
            }
            catch (Exception ex)
            {
                MessageBox.Show("该服务地址不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Пример #2
0
        /// <summary>
        /// 加载OracleSpatial数据
        /// </summary>
        /// <param name="server">服务IP地址</param>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="layername">图层名</param>
        public void ConnOracleSpatialDatabase(ISGWorld61 sgworld, string server, string username, string password, string layername)
        {
            string   ConnStr = "OGRConnectionString=OCI:" + username + "/" + password + "@" + server + ":" + layername + ";";
            ILayer61 layer61 = sgworld.Creator.CreateFeatureLayer(layername, ConnStr, 0);

            layer61.Streaming = false;
            try
            {
                string wellKtext = sgworld.CoordServices.ChooseCSDialog("", "");
                layer61.CoordinateSystem.WellKnownText = wellKtext;
                layer61.Reproject = true;
                layer61.Load();
            }
            catch (Exception)
            {
                layer61.Load();
            }
        }
Пример #3
0
 /// <summary>
 /// 加载SDE图层
 /// </summary>
 /// <param name="layerName">图层名</param>
 /// <param name="server">sde服务IP</param>
 /// <param name="user">用户名</param>
 /// <param name="password">密码</param>
 public void ConnArcSDE(ISGWorld61 sgworld, string layerName, string server, string user, string password)
 {
     try
     {
         ILayer61 pILayer = sgworld.Creator.CreateFeatureLayer(layerName, "Server=" + server + ";User="******";Password="******";LayerName=" + layerName + ";Instance=5151/tcp;TEPlugName=arcsde;", 0);//在根目录下装载shp数据
         pILayer.Load();
     }
     catch (Exception)
     {
     }
 }
Пример #4
0
        /// <summary>
        /// 添加Shape文件
        /// </summary>
        /// <param name="FilePath"></param>
        /// <param name="layerName"></param>
        public void LoadShapeFile(ISGWorld61 sgworld, string FilePath, string layerName, int GroupID)
        {
            if (string.IsNullOrEmpty(FilePath))
            {
                return;
            }
            if (File.Exists(FilePath))
            {
                string   connnstr = "FileName=" + FilePath + ";TEPlugName=OGR;";
                ILayer61 layer61  = null;
                layer61 = sgworld.Creator.CreateFeatureLayer(layerName, connnstr, GroupID);

                // 2013-04-11 张航宇
                // 当坐标系不一致时,Streaming=false会使Load方法出错
                layer61.Streaming = true;
                layer61.Load();

                string wellKtext = sgworld.CoordServices.ChooseCSDialog("", "");
                layer61.CoordinateSystem.WellKnownText = wellKtext;
                //layer61.Streaming = false;

                // 2013-04-11 张航宇
                // 若坐标系不一致,则skyline会自动弹出投影对话框
                //if (MessageBox.Show("是否投影?", "SUNZ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                //{
                //    layer61.Reproject = true;
                //}
                //else
                //{
                //    layer61.Reproject = false;
                //}
                layer61.DataSourceInfo.Attributes.ImportAll = true;
                layer61.Refresh();
            }
            /*****20130227杨漾(添加文件有效性判断,去掉trycatch,上层trycatch(MainForm)处理)*****/
        }