MartyConnelly
martyconnelly at shaw.ca
Thu Sep 28 21:33:49 CDT 2006
For those of you wanting to footle around with Access and MS Virtual Earth Here is some sample code, it also dumps the html code to an html file By clicking on map you display Lat/Long position of cursor Option Compare Database Option Explicit Function testVirtualEarthMap() '------------------ 'display Virtual Earth at a fixed LatLong ' then click on map to display Lat/Long position of cursor 'see these for info: 'http://dev.live.com/virtualearth/sdk/ 'http://www.ftponline.com/special/web20/pvarholasp/default.aspx Dim objExplorer As Object Dim objDocument As Object Dim strHTML As String Set objExplorer = CreateObject("InternetExplorer.Application") objExplorer.Navigate "about:blank" objExplorer.Toolbar = 1 ' 0= off objExplorer.StatusBar = 1 '0 =off objExplorer.Width = 800 objExplorer.Height = 870 objExplorer.Left = 0 objExplorer.Top = 0 objExplorer.Visible = 1 Do While (objExplorer.Busy) Loop Set objDocument = objExplorer.Document objDocument.Open 'create html string and dump to a test file strHTML = "" strHTML = strHTML & createhtml WriteFile "c:\gis\test.html", strHTML 'objDocument.Writeln strHTML objDocument.Write strHTML objExplorer.Refresh ' ??This has to be done because of http://local.live.com/veapi.ashx 'objDocument.Close 'stall here Do While (objExplorer.Busy) Loop 'MsgBox "finished" 'Set objExplorer = Nothing 'Set objDocument = Nothing End Function Private Sub WriteFile(ByVal sFileName As String, ByVal sContents As String) ' Dump XML or html String to File for debugging Dim fhFile As Integer fhFile = FreeFile ' Debug.Print "Length of string=" & Len(sContents) Open sFileName For Output As #fhFile Print #fhFile, sContents; Close #fhFile Debug.Print "Out File" & sFileName End Sub Function createhtml() As String Dim strHTML As String strHTML = "" strHTML = strHTML & "<html><head><title>Virtual Earth Map</title></head>" strHTML = strHTML & "<meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"">" 'When your page has referenced the map control, set up the call to display a default map by completing a LoadMap ( ) method call: strHTML = strHTML & vbCrLf & "<script src='http://dev.virtualearth.net/mapcontrol/v3/mapcontrol.js'></script> " ' strHTML = strHTML & vbCrLf & "<script type='text/javascript' src='http://local.live.com/veapi.ashx'></script>" strHTML = strHTML & vbCrLf & "<script language=""javascript"" type=""text/javascript"">" ' strhtml = strhtml & vbCrLf & "<!-- " strHTML = strHTML & vbCrLf & " var map=null;" strHTML = strHTML & vbCrLf & " function ShowLatLon(e)" strHTML = strHTML & vbCrLf & " {" strHTML = strHTML & vbCrLf & "alert('Latitude = ' + e.view.LatLong.Latitude + 'Longitude = ' + e.view.LatLong.Longitude);" strHTML = strHTML & vbCrLf & " }" strHTML = strHTML & vbCrLf & " function GetMap()" strHTML = strHTML & vbCrLf & " { " strHTML = strHTML & vbCrLf & " map = new VEMap(""myMap"");" strHTML = strHTML & vbCrLf & "map.onLoadMap = function(){ alert('The map has loaded.') };" strHTML = strHTML & vbCrLf & " map.LoadMap(new VELatLong(48.51, -123.36), 10 ,""h"" ,false);" strHTML = strHTML & vbCrLf & " map.AttachEvent(""onclick"", ShowLatLon);" strHTML = strHTML & vbCrLf & " }" strHTML = strHTML & vbCrLf & "</script>" ' strhtml = strhtml & vbCrLf & "// -->" 'Last, you display the map: strHTML = strHTML & vbCrLf & "<body onload='GetMap();'>" strHTML = strHTML & vbCrLf & "<div id='myMap' style='position:relative; width:600px; height:600px;'></div>" strHTML = strHTML & vbCrLf & "<td> right or left click map for latitude longitude position </td>" strHTML = strHTML & vbCrLf & "</body>" strHTML = strHTML & vbCrLf & "</html>" WriteFile "c:\gis\test.html", strHTML createhtml = strHTML End Function -- Marty Connelly Victoria, B.C. Canada