Hallo,
ich weiß, diese Frage ist ziemlich speziell... Aber ich möchte gern von Access aus eine Google Maps Seite öffnen, in der Datensätze als Punkte dargestellt werden. Google hat dafür eine API: https://developers.google.com/maps/documentation/javascript/earthquakes (https://developers.google.com/maps/documentation/javascript/earthquakes)
Die API arbeitet mit Java Script. Meine Datensätze kommen aus einer Abfrage und liefern Lat. und Long Koordinaten pro Datensatz.
Wie kann ich das via Access umsetzen, dass z.B. beim Klick auf eine Schaltfläche der Browser geöffnet wird und die entsprechenden Datensätze als Punkte im Google Maps angezeigt werden?
Würde mich freuen, wenn jemand helfen kann.
LG
datekk
Ich kann zwar nicht helfen, aber genau das brauche ich auch für mein nächstes Projekt :)
Da ich keinen API-Key von Google besitze, habe ich hier nur ein Beispiel für Google Static Maps (https://developers.google.com/maps/documentation/static-maps/?hl=de). Ohne Key ist die maximale Auflösung 640x640 Pixel - mit Key sind es wohl 1280x1280 Pixel. Hier ein Beispiel für ein Formular mit einem Knopf ctlRefresh, das die wesentlichen Möglichkeiten aufzeigt. Vorteil, man kann das Bild auch im Bericht nutzen und drucken, was mit dem Webbrowser-Control wohl nicht funktioniert.
Option Explicit
Private Const gms_url = "https://maps.googleapis.com/maps/api/staticmap?"
Private Sub ctlRefresh_Click()
'640x640 ist die maximale Bildgröße bei freiem Zugang
Dim params$
params = "zoom=14" & _
"&size=640x640" & _
"&maptype=roadmap" & _
"&language=de" & _
"&format=png" & _
"&markers=color:blue|label:Z|Kölner+Zoo" & _
"&markers=color:yellow|label:D|Kölner+Dom" & _
"&markers=size:mid|color:0x" & Color2Hex(RGB(217, 47, 47)) & _
"|label:S|Kölner Synagoge in der Roonstraße" & _
"&markers=size:mid|color:0x22CC22|label:G|Köln+Gürzenich"
Dim req, path$, fn%, b() As Byte
Set req = CreateObject("WinHttp.WinHttpRequest.5.1")
req.Open "GET", gms_url & UTF8UrlEnc(params), False
req.Send
If req.StatusText = "OK" Then
path = CurrentProject.path & "\gms.png"
fn = FreeFile()
Open path For Binary As #fn
b = req.ResponseBody
Put #fn, , b
Close #fn
Me.Picture = path
End If
End Sub
Private Function Color2Hex(Color As Long) As String
Color2Hex = Right("0" & Hex$(Color \ 65536), 2) & _
Right("0" & Hex$(Color \ 256 And 255), 2) & _
Right("0" & Hex$(Color And 255), 2)
End Function
Private Function UTF8UrlEnc(S As String) As String
Dim i As Long, W As Integer
For i = 1 To Len(S)
W = AscW(Mid$(S, i, 1))
If W < 128 Then
UTF8UrlEnc = UTF8UrlEnc & ChrW$(W)
ElseIf W < 2048 Then
UTF8UrlEnc = UTF8UrlEnc & "%" & Hex$(W \ 64 Or 192) & "%" & Hex$(W And 63 Or 128)
End If
Next
End Function
Wer sich mit JavaScript beschäftigen will und die Browseroberfläche bevorzugt, findet unter Adding markers to Google Maps from Excel (http://ramblings.mcpher.com/Home/excelquirks/getmaps/mapmarkers) vermutlich einen guten Einstiegspunkt
Danke, probiere ich morgen mal aus.
Lachtaube for President!!!!! 1000 Dank. Da probier ich mal mit rum ;)