?? mapobject學習筆記-第四講電子地圖常用工具開發_魏國強 的 博客.htm
字號:
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=" & pt.X</SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN>StatusBar1.Panels(3).Text
= "y=" & 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"> </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"> </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"> </SPAN>r.ScaleRectangle
2</SPAN></P>
<P class=MsoNormal
style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><SPAN><SPAN
style="mso-spacerun: yes"> </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"> </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"> </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>" & Printer.DeviceName</SPAN></P>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -