⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapobject学习笔记-第四讲电子地图常用工具开发_魏国强 的 博客.htm

📁 MO+VC的学习文档资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>几点说明:</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>(</SPAN><SPAN>1</SPAN><SPAN>)</SPAN><SPAN>Rectangle</SPAN><SPAN>对象描述矩形的特征,即具有四条边和四个直角的几何形状。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>(</SPAN><SPAN>2</SPAN><SPAN>)</SPAN><SPAN>Point</SPAN><SPAN>对象表示一个点的地理形状,可以通过</SPAN><SPAN>Point</SPAN><SPAN>的</SPAN><SPAN>X, 
      Y</SPAN><SPAN>属性修改得到它的地理位置坐标值。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>(</SPAN><SPAN>3</SPAN><SPAN>)</SPAN><SPAN>Map</SPAN><SPAN>控件的几个用到的成员函数:</SPAN><SPAN>CenterAt</SPAN><SPAN>将当前的显示范围中心移动到指定的中心,语法为</SPAN><SPAN>object.CenterAt 
      x, 
      y</SPAN><SPAN>;</SPAN><SPAN>ToMapPoint</SPAN><SPAN>是将点的位置从以屏幕坐标表示转换为以地图坐标表示,语法为</SPAN><SPAN>Set 
      variable = object.ToMapPoint( xControl, yControl)</SPAN><SPAN>。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt; mso-outline-level: 1"><SPAN>2</SPAN><SPAN>、在指示窗口中拖动方框</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>要实现在指示窗口中拖动方框的功能,程序非常复杂,但是</SPAN><SPAN>MO</SPAN><SPAN>中提供了类模块</SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>DragFeedback</SPAN></STRONG><SPAN>,只要在工程中添加类模块</SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>DragFeedback</SPAN></STRONG><SPAN>就可以了。其中类模块</SPAN><SPAN>DragFeedback</SPAN><SPAN>在</SPAN><SPAN>MO</SPAN><SPAN>安装不全的情况下是不存在的,可以在程序中加入。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>示例代码见附录。</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN 
      style="FONT-SIZE: 12pt">二</SPAN></STRONG><STRONG><SPAN 
      style="FONT-SIZE: 12pt">、属性显示</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>在电子地图系统中,常常要查询地图上对象的属性,这时就需要属性显示的程序设计方法了。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>1</SPAN><SPAN>、显示一个区的属性</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>添加控件</SPAN><SPAN>Map1</SPAN><SPAN>和</SPAN><SPAN>ListView1</SPAN><SPAN>,并且设置</SPAN><SPAN>ListView1</SPAN><SPAN>的</SPAN><SPAN>View</SPAN><SPAN>属性为</SPAN><SPAN>3</SPAN><SPAN>。并添加如下代码实现区域属性的显示。</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Option 
      Explicit</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim p As 
      Point</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim recs As 
      Recordset</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim fld As 
      Field</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim l As 
      MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      Form_Load()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' </SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>初始化</SPAN><SPAN>ListView1</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>的</SPAN><SPAN>ColumnHeaders</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>属性</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set col = 
      ListView1.ColumnHeaders.Add()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>col.Text = 
      "Field"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set col = 
      ListView1.ColumnHeaders.Add()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>col.Text = 
      "Value"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' </SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>加载地图数据</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim dc As New 
      DataConnection</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>dc.Database = 
      App.Path + "\..\" + "world"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>If Not dc.Connect 
      Then End</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim layer As 
      MapLayer<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
      </SPAN></SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set layer = New 
      MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set 
      layer.GeoDataset = dc.FindGeoDataset("country")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Symbol.Color 
      = 4636724</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Map1.Layers.Add 
      layer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End Sub</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      Map1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As 
      Single)</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' </SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>获得地图对象,</SPAN><SPAN>"country"</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>即为</SPAN><SPAN>Layers</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象</SPAN><SPAN>counts</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>属性的名称,也可以以索引号代替</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Dim newitem As 
      Object</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42.75pt; mso-char-indent-count: 4.07"><SPAN>Set 
      l = Map1.Layers("country")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' <STRONG 
      style="mso-bidi-font-weight: normal">ToMapPoint</STRONG></SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是</SPAN><SPAN>Map</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>控件的成员函数之一,表示将点的位置从以屏幕坐标转换为以地图坐标系坐标表示,语法为</SPAN><SPAN>Set 
      variable = object.ToMapPoint( xControl, yControl)</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>,</SPAN><SPAN>variable</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是以地图坐标系表示的点位置,</SPAN><SPAN>xControl, 
      yControl</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是屏幕坐标的值。</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set p = 
      Map1.ToMapPoint(x, y)</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><STRONG 
      style="mso-bidi-font-weight: normal">' </STRONG></SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>建立一个</SPAN></STRONG><SPAN>Recordset</SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>查找,语法为</SPAN><SPAN>Set variable 
      = object.SearchShape( shape, searchMethod, expression 
      )</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>;该函数是</SPAN></STRONG><SPAN>MapLayer</SPAN><SPAN>对象的一个函数,返回值是图层地理特征的子集,即</SPAN><SPAN>Recordset</SPAN><SPAN>对象。</SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>Expression</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>为逻辑条件表达式,一般为空。</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set recs = 
      l.SearchShape(p, moPointInPolygon, "")<SPAN style="mso-spacerun: yes"> 
      </SPAN></SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' <STRONG 
      style="mso-bidi-font-weight: normal">EOF</STRONG></SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是</SPAN></STRONG><SPAN>Recordset</SPAN><SPAN>对象的<STRONG 
      style="mso-bidi-font-weight: normal">属性,表示当前记录是否是记录集中的最后一个记录。</STRONG></SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>If Not recs.EOF 
      Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ListView1.ListItems.Clear</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>'Fields</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>属性记录集中包含了</SPAN><SPAN>Fields</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象的地址指针,而</SPAN><SPAN>Fields</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象存储所有</SPAN><SPAN>Recordset</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象的所有字段。</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>For Each fld In 
      recs.Fields<SPAN style="mso-spacerun: yes"> </SPAN></SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><STRONG 
      style="mso-bidi-font-weight: normal">'Field</STRONG></SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象表示数据库中的一列数据,包括一般的数据类型和一系列属性值,</SPAN><SPAN>Name</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是其的一个属性,表示字段名。</SPAN> 
      </STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42.75pt; mso-char-indent-count: 4.07"><SPAN>Set 
      newItem = ListView1.ListItems.Add</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>newItem.Text = 
      fld.Name</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>' </SPAN><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>是</SPAN><SPAN>Field</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>对象的一个属性,是一个字符串,表示将当前记录的字段值转换字符串后的值。</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      </SPAN>newItem.SubItems(1) = fld.ValueAsString<SPAN 
      style="mso-spacerun: yes"> </SPAN></SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Next fld</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End If</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End Sub</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>2</SPAN><SPAN>、显示所有对象的属性</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>在电子地图系统中,对地理实体进行查询,点击一个位置,往往包含多个对象,如一个城市可能在一条河流上,而同时又位于一个地区内。程序可以用一个</SPAN><SPAN>combo</SPAN><SPAN>控件来区分不同的对象。程序比较复杂,这里只给出大家示例代码,在实际的电子地图系统设计过程中,可以直接引用。示例代码见附录。</SPAN></P><SPAN>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN 
      style="FONT-SIZE: 12pt">三、其他电子地图常用工具</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>1</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>、地图比例尺工具</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>scalebar</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>scalebar</SPAN><SPAN>控件可以动态显示地图的比例</SPAN><SPAN>,</SPAN><SPAN>还可以把鼠标的移动坐标写到</SPAN><SPAN>statusbar</SPAN><SPAN>上。一般对比例尺控件进行设置为:</SPAN><SPAN>mapunits=2,minticspace=0.4,scalebarunits=2,screenunits=1</SPAN><SPAN>,为了有效的显示比例信息,</SPAN><SPAN>scalebar</SPAN><SPAN>控件的宽度属性最少为</SPAN><SPAN>1700</SPAN><SPAN>,高度属性为</SPAN><SPAN>600</SPAN><SPAN>。</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN>示例代码为:</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN>Private Sub 
      refreshscale()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.MapExtent.MaxX = 
      Map1.Extent.Right</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.MapExtent.MinX = 
      Map1.Extent.Left</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.MapExtent.MaxY = 
      Map1.Extent.Bottom</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.MapExtent.MinY = 
      Map1.Extent.Top</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.PageExtent.MinX = Map1.Left / 
      Screen.TwipsPerPixelX</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.PageExtent.MinY = Map1.Top / 
      Screen.TwipsPerPixelY</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.PageExtent.MaxX = (Map1.Left + 
      Map1.Width) / Screen.TwipsPerPixelX</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.PageExtent.MaxY = (Map1.Top + 
      Map1.Height) / Screen.TwipsPerPixelY</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt"><SPAN>ScaleBar1.Refresh</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN>End Sub</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>2</SPAN></STRONG><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>、状态栏</SPAN><SPAN>StatusBar</SPAN></STRONG></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>添加一个状态栏,可以把鼠标的移动位置,比例信息以及其他的一些信息写到状态栏上。示例程序中添加一个状态栏控件并设置几个窗格,一个地图控件,一个命令按钮,一个</SPAN><SPAN>Legend</SPAN><SPAN>控件。示例代码如下:</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim dc As New 
      DataConnection</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Dim layer As 
      MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      refreshscale()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.MapExtent.MaxX 
      = Map1.Extent.Right</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.MapExtent.MinX 
      = Map1.Extent.Left</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.MapExtent.MaxY 
      = Map1.Extent.Bottom</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.MapExtent.MinY 
      = Map1.Extent.Top</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.PageExtent.MinX 
      = Map1.Left / Screen.TwipsPerPixelX</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.PageExtent.MinY 
      = Map1.Top / Screen.TwipsPerPixelY</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.PageExtent.MaxX 
      = (Map1.Left + Map1.Width) / Screen.TwipsPerPixelX</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.PageExtent.MaxY 
      = (Map1.Top + Map1.Height) / Screen.TwipsPerPixelY</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ScaleBar1.Refresh</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>StatusBar1.Panels(1).Text 
      = "</SPAN><SPAN>比例</SPAN><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp; 
      </SPAN>1</SPAN><SPAN>:</SPAN><SPAN>" &amp; Format$(ScaleBar1.RFScale, 
      "###,###,###,###")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End Sub</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      Command1_Click()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set Map1.Extent = 
      Map1.FullExtent</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End Sub</SPAN></P>
      <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -