/// <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); } }
/// <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(); } }
/// <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) { } }
/// <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)处理)*****/ }