上一视图下一视图功能实现(C#+SuperMap Objects)

 

SuperMap Objects实现上一视图下一视图功能
        //list 用于保存视图范围
        private List<SuperMapLib.soRect> m_extents = new List<SuperMapLib.soRect>();

        
//视图存取list的最大限制数
        private int m_extentRecordsMax = 3;

        
//当前显示视图在视图list中的index
        private int m_extentNowIndex = 0;

        
//当前视图操作状态 next|last|other
        private String m_viewState = String.Empty;
        
        
//上一视图
        private void btnLastView_Click(object sender, EventArgs e)
        {
            
this.m_viewState="last";
            
this.btnNextView.Enabled = true;
            
if(this.m_extentNowIndex==0)
            {
            } 
            
else if (this.m_extentNowIndex == 1)
            {
                
this.m_extentNowIndex = this.m_extentNowIndex - 1;
                
this.SuperMap1.ViewBounds = this.m_extents[this.m_extentNowIndex];
                
this.SuperMap1.Refresh();
                
this.btnLastView.Enabled = false;
            }

            
else
            {
                
this.m_extentNowIndex=this.m_extentNowIndex-1;
                
this.SuperMap1.ViewBounds = this.m_extents[this.m_extentNowIndex];
                
this.SuperMap1.Refresh();
            }
        }

        
//下一视图
        private void btnNextView_Click(object sender, EventArgs e)
        {
            
this.m_viewState = "next";
            
this.btnLastView.Enabled = true;
            
if (this.m_extentNowIndex == this.m_extents.Count - 1)
            {
            }
            
else if (this.m_extentNowIndex == this.m_extents.Count - 2)
            {
                
this.m_extentNowIndex = this.m_extentNowIndex + 1;
                
this.SuperMap1.ViewBounds = this.m_extents[this.m_extentNowIndex];
                
this.SuperMap1.Refresh();
                
this.btnNextView.Enabled = false;
            }
            
else
            {
                
this.m_extentNowIndex = this.m_extentNowIndex + 1;
                
this.SuperMap1.ViewBounds = this.m_extents[this.m_extentNowIndex];
                
this.SuperMap1.Refresh();
            }
        }

        
//地图绘制完成后动作
        private void SuperMap1_AfterMapDraw(object sender, AxSuperMapLib._DSuperMapEvents_AfterMapDrawEvent e)
        {
            
if (this.m_viewState!="last"&& this.m_viewState!="next")
            {
                
if (this.m_extents.Count < m_extentRecordsMax)
                {
                    
this.m_extents.Add(this.SuperMap1.ViewBounds);
                    
this.m_extentNowIndex = this.m_extents.Count - 1;
                    
this.m_viewState = null;
                }
                
else
                {
                    
this.m_extents.Add(this.SuperMap1.ViewBounds);
                    
this.m_extents.RemoveAt(0);
                    
this.m_extentNowIndex = this.m_extents.Count - 1;
                    
this.m_viewState = null;
                }
            }
        }
posted @ 2009-07-09 22:53  因是因非  阅读(506)  评论(0编辑  收藏  举报