从MIF文件直接读取道路数据

None.gif string  file =   @" C:\Inetpub\wwwroot\SSWeb\node\Road.MIF " ; // 载入数据,使用绝对路径(单独制作的综合节点图层)
None.gif
            StreamReader sr  =   new  StreamReader(file);
None.gif            
string  nextLine, sTmp;
None.gif            
long  nTmp, mTmp;
None.gif            nTmp 
=  mTmp  =   0 ;
None.gif            TNode fNode, cNode;
None.gif            fNode 
=  cNode  =   null ;
None.gif            
while  ((nextLine  =  sr.ReadLine())  !=   null )
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                sTmp 
= nextLine.Trim();
InBlock.gif                
if (sTmp.Length > 14 && sTmp.Substring(0,14).CompareTo("Pline Multiple"== 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    nTmp 
= 0;
InBlock.gif                    nTmp 
= Convert.ToInt32(sTmp.Substring(14));
InBlock.gif                    
for (long i=0; i < nTmp; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        
if ((nextLine = sr.ReadLine()) == null)
InBlock.gif                            
break;
InBlock.gif
InBlock.gif                        fNode 
= cNode = null;
InBlock.gif                        mTmp 
= 0;
InBlock.gif                        sTmp 
= nextLine.Trim();
InBlock.gif                        mTmp 
= Convert.ToInt32(sTmp);
InBlock.gif                        
for (long n=0; n < mTmp; n++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
dot.gif{
InBlock.gif                            
if ((nextLine = sr.ReadLine()) == null)
InBlock.gif                                
break;
InBlock.gif
InBlock.gif                            sTmp 
= nextLine.Trim();
InBlock.gif                            
string delimStr = " ";
InBlock.gif                            
char [] delimiter = delimStr.ToCharArray();
InBlock.gif                            
string [] aTmp = sTmp.Split(delimiter,2);
InBlock.gif
InBlock.gif                            fNode 
= cNode;
InBlock.gif                            cNode 
= new TNode();
InBlock.gif                            cNode.Sx 
= Convert.ToDouble(aTmp[0]);
InBlock.gif                            cNode.Sy 
= Convert.ToDouble(aTmp[1]);
InBlock.gif                            cNode.AddChild(fNode);
InBlock.gif                            
if (fNode != null)
InBlock.gif                                fNode.AddChild(cNode);
InBlock.gif                            
InBlock.gif                            mDataList.Add(fNode);
InBlock.gif                            mDataList.Add(cNode);
ExpandedSubBlockEnd.gif                        }

ExpandedSubBlockEnd.gif                    }

ExpandedSubBlockEnd.gif                }

InBlock.gif                
else if (sTmp.Length > 4 && sTmp.Substring(0,5).CompareTo("Pline"== 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    fNode 
= cNode = null;
InBlock.gif                    nTmp 
= 0;
InBlock.gif                    nTmp 
= Convert.ToInt32(sTmp.Substring(5));
InBlock.gif                    
for (long i=0; i < nTmp; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        
if ((nextLine = sr.ReadLine()) == null)
InBlock.gif                            
break;
InBlock.gif
InBlock.gif                        sTmp 
= nextLine.Trim();
InBlock.gif                        
string delimStr = " ";
InBlock.gif                        
char [] delimiter = delimStr.ToCharArray();
InBlock.gif                        
string [] aTmp = sTmp.Split(delimiter,2);
InBlock.gif
InBlock.gif                        fNode 
= cNode;
InBlock.gif                        cNode 
= new TNode();
InBlock.gif                        cNode.Sx 
= Convert.ToDouble(aTmp[0]);
InBlock.gif                        cNode.Sy 
= Convert.ToDouble(aTmp[1]);
InBlock.gif                        cNode.AddChild(fNode);
InBlock.gif                        
if (fNode != null)
InBlock.gif                            fNode.AddChild(cNode);
InBlock.gif
InBlock.gif                        mDataList.Add(fNode);
InBlock.gif                        mDataList.Add(cNode);
ExpandedSubBlockEnd.gif                    }

ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

None.gif            sr.Close();

转载于:https://www.cnblogs.com/yuxon/archive/2006/06/28/437519.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值