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

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

📁 MO+VC的学习文档资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      Form_Load()</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>layset</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>legend1.setMapSource 
      Map1</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>legend1.LoadLegend 
      True</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Map1.Refresh</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 
      legend1_AfterSetLayerVisible(Index As Integer, isVisible As 
      Boolean)</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Map1.Refresh</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"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      Map1_AfterLayerDraw(ByVal Index As Integer, ByVal canceled As Boolean, 
      ByVal hDC As stdole.OLE_HANDLE)</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Call 
      refreshscale</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>If Button = 
      vbLeftButton Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set Map1.Extent = 
      Map1.TrackRectangle</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ElseIf Button = 
      vbRightButton Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Map1.Pan</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"></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Private Sub 
      Map1_MouseMove(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>Dim pt As New 
      Point</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set pt = 
      Map1.ToMapPoint(X, Y)</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>StatusBar1.Panels(2).Text 
      = "x=" &amp; pt.X</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>StatusBar1.Panels(3).Text 
      = "y=" &amp; pt.Y</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>Private Sub 
      layset()</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>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 
      = moOrange</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Name = 
      "</SPAN><SPAN>国家</SPAN><SPAN>"</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>Set layer = New 
      MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set 
      layer.GeoDataset = dc.FindGeoDataset("rivers")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Symbol.Color 
      = moDarkGreen</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Symbol.Size 
      = 2</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Name = 
      "</SPAN><SPAN>河流</SPAN><SPAN>"</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>Set layer = New 
      MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Set 
      layer.GeoDataset = dc.FindGeoDataset("cities")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Symbol.Color 
      = moBlue</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Symbol.Size 
      = 4</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>layer.Name = 
      "</SPAN><SPAN>城市</SPAN><SPAN>"</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>Map1.Refresh</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"><STRONG 
      style="mso-bidi-font-weight: normal"><SPAN>3</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><SPAN>MO</SPAN><SPAN>上实现地图打印的功能非常简单,只要用</SPAN><SPAN>printmap</SPAN><SPAN>方法,不需要做太多的设置即可。</SPAN><SPAN>printmap</SPAN><SPAN>方法的语法为:</SPAN><SPAN>object.PrintMap 
      docName, outputFile, 
      landscape</SPAN><SPAN>,</SPAN><SPAN>docName</SPAN><SPAN>为在打印序列中的名称;</SPAN><SPAN>outputFile</SPAN><SPAN>为输出文件名;</SPAN><SPAN>landscape</SPAN><SPAN>为打印方向,</SPAN><SPAN>true</SPAN><SPAN>为横向打印,</SPAN><SPAN>false</SPAN><SPAN>为纵向打印。示例程序代码为:</SPAN></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>Dim r As 
      MapObjects2.Rectangle</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>If Button = 
      vbLeftButton Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Set Map1.Extent = 
      Map1.TrackRectangle</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>ElseIf Button = 
      vbRightButton Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Set r = 
      Map1.Extent</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>r.ScaleRectangle 
      2</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Map1.Extent = 
      r</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"></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>On Error GoTo 
      err1</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>'Map1.PrintMap 
      "MyMap", "test1", Option1.Value</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Map1.PrintMap 
      "MyMap", "", Option1.Value</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>MsgBox 
      "</SPAN><SPAN>打印完成。</SPAN><SPAN>"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Exit 
Sub</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>err1:</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>MsgBox 
      Err.Description + "</SPAN><SPAN>,程序停止。</SPAN><SPAN>"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Unload 
      Me</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>End 
      Sub</SPAN></P><SPAN>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>Sub 
      DrawLayer()</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Dim dc As New DataConnection</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Dim layer As MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>dc.Database = App.Path + "\..\" + 
      "<ST1:COUNTRY-REGION><ST1:PLACE>Mexico</ST1:PLACE></ST1:COUNTRY-REGION>"</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>If Not dc.Connect Then</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>MsgBox 
      "</SPAN><SPAN>在指定的文件夹下没找到图层数据文件!</SPAN><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>End</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>End If</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><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"></SPAN>Set layer = New MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Set layer.GeoDataset = 
      dc.FindGeoDataset("States")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>layer.Symbol.Color = moYellow</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Map1.Layers.Add layer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><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"></SPAN>Set layer = New MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Set layer.GeoDataset = 
      dc.FindGeoDataset("Rivers")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>layer.Symbol.Color = moRed</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Map1.Layers.Add layer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Map1.Refresh</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><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"></SPAN>Set layer = New MapLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Set layer.GeoDataset = 
      dc.FindGeoDataset("Cities")</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>layer.Symbol.Color = moBlue</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></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"><SPAN></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 
      style="mso-spacerun: yes"></SPAN>DrawLayer</SPAN></P>
      <P class=MsoNormal 
      style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN 
      style="mso-spacerun: yes"></SPAN>Label1.Caption = 
      "</SPAN><SPAN>你使用的打印机是:</SPAN><SPAN>" &amp; Printer.DeviceName</SPAN></P>

⌨️ 快捷键说明

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