批量生产潍坊1:500和1000元数据控制台程序

来源:互联网 发布:2016网络射击游戏大全 编辑:程序博客网 时间:2024/04/29 12:14

 class Program

    {
        static void Main(string[] args)
        {
            Console.Out.WriteLine("欢迎使用批量生产潍坊1:1000元数据控制台程序");
            Console.Out.WriteLine("请准备好对应的元数据模板‘SGGT-DLG-4078.5-503.5dlg1000.xml’和‘dlg1000列表.txt’");
            Console.ReadLine();


            //读取xml
            XmlElement root = null;
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load("SGGT-DLG-4078.5-503.5dlg1000.xml");
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmldoc.NameTable);
            nsmgr.AddNamespace("smmd", "http://data.sbsm.gov.cn/smmd/2007");
            root = xmldoc.DocumentElement;




            //读取文本文件逐行
            StreamReader sr = new StreamReader("dlg1000列表.txt");
            int i = 0;
            while (!sr.EndOfStream)
            {


                string zongzuobiaoX, hengzuobiaoY;
                double zongzuobiaoXdoubleKM, hengzuobiaoYdoubleKM, zongzuobiaoXdoubleM, hengzuobiaoYdoubleM;
                string[] line = sr.ReadLine().Split('-');
                zongzuobiaoXdoubleKM = Convert.ToDouble(line[0]);
                hengzuobiaoYdoubleKM = Convert.ToDouble(line[1]);
                zongzuobiaoXdoubleM = zongzuobiaoXdoubleKM * 1000;
                hengzuobiaoYdoubleM = hengzuobiaoYdoubleKM * 1000;
                zongzuobiaoX = zongzuobiaoXdoubleKM.ToString("0.0");
                hengzuobiaoY = hengzuobiaoYdoubleKM.ToString("0.0");


                //Console.Out.WriteLine("第"+i+"行要素的纵坐标公里数是" + zongzuobiaoX);
                //Console.Out.WriteLine("第" + i + "行要素的横坐标公里数是" + hengzuobiaoY);
                //Console.Out.WriteLine("第" + i + "行要素的纵坐标米数是" + zongzuobiaoXdoubleM);
                //Console.Out.WriteLine("第" + i + "行要素的横坐标米数是" + hengzuobiaoYdoubleM);


                //开始修改xml数据
                Console.Out.Write("开始修改第" + i + "行数据,");


                //修改smmd:mdFileID>
                XmlNodeList noddddlistmdFileID = root.SelectNodes("smmd:mdFileID", nsmgr);
                noddddlistmdFileID[0].InnerText = "WFGTJ-DLG-" + zongzuobiaoX + "-" + hengzuobiaoY;




                //修改smmd:resTitle图幅编号
                XmlNodeList noddddlistresTitle = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:idCitation/smmd:resTitle", nsmgr);
                noddddlistresTitle[0].InnerText = zongzuobiaoX + "-" + hengzuobiaoY;




                //修改smmd:WSCoordX西南X
                XmlNodeList noddddlistWSCoordX = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:WSCoordX", nsmgr);
                noddddlistWSCoordX[0].InnerText = zongzuobiaoXdoubleM.ToString("0.00");




                //修改smmd:WSCoordY西南Y
                XmlNodeList noddddlistWSCoordY = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:WSCoordY", nsmgr);
                noddddlistWSCoordY[0].InnerText = hengzuobiaoYdoubleM.ToString("0.00");


                //修改smmd:WNCoordX西北X
                XmlNodeList noddddlistWNCoordX = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:WNCoordX", nsmgr);
                noddddlistWNCoordX[0].InnerText = (zongzuobiaoXdoubleM + 500).ToString("0.00");


                //修改smmd:WNCoordY西北Y
                XmlNodeList noddddlistWNCoordY = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:WNCoordY", nsmgr);
                noddddlistWNCoordY[0].InnerText = hengzuobiaoYdoubleM.ToString("0.00");


                //修改smmd:ENCoordX东北X
                XmlNodeList noddddlistENCoordX = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:ENCoordX", nsmgr);
                noddddlistENCoordX[0].InnerText = (zongzuobiaoXdoubleM + 500).ToString("0.00");


                //修改smmd:ENCoordY东北Y
                XmlNodeList noddddlistENCoordY = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:ENCoordY", nsmgr);
                noddddlistENCoordY[0].InnerText = (hengzuobiaoYdoubleM + 500).ToString("0.00");


                //修改smmd:ESCoordX东南X
                XmlNodeList noddddlistESCoordX = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:ESCoordX", nsmgr);
                noddddlistESCoordX[0].InnerText = zongzuobiaoXdoubleM.ToString("0.00");


                //修改smmd:ESCoordY东南Y
                XmlNodeList noddddlistESCoordY = root.SelectNodes("smmd:dataIdInfo/smmd:DataIdent/smmd:dataExt/smmd:geoEle/smmd:BndCoord/smmd:ESCoordY", nsmgr);
                noddddlistESCoordY[0].InnerText = (hengzuobiaoYdoubleM + 500).ToString("0.00");




                Console.Out.WriteLine("第" + i + "行数据修改完毕");


                //保存xml元数据
                i++;
                xmldoc.Save("F:/大比例尺相关资料/元数据/1000比例尺元数据/" + zongzuobiaoX.ToString() + "-" + hengzuobiaoY.ToString() + ".xml");
            }


            Console.Out.WriteLine(" ");
            Console.Out.WriteLine("数据输出完毕!谢谢使用");
            Console.Out.WriteLine("");
            Console.ReadLine();

0 0
原创粉丝点击