Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: datekk am Oktober 10, 2017, 19:38:28

Titel: Geo - Punkte in Goolge Maps einfügen (?JavaScript?)
Beitrag von: datekk am Oktober 10, 2017, 19:38:28
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
Titel: Re: Geo - Punkte in Goolge Maps einfügen (?JavaScript?)
Beitrag von: Xoar am Oktober 10, 2017, 22:34:50
Ich kann zwar nicht helfen, aber genau das brauche ich auch für mein nächstes Projekt :)

Titel: Re: Geo - Punkte in Goolge Maps einfügen (?JavaScript?)
Beitrag von: Lachtaube am Oktober 11, 2017, 15:57:40
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
Titel: Re: Geo - Punkte in Goolge Maps einfügen (?JavaScript?)
Beitrag von: Xoar am Oktober 11, 2017, 21:31:26
Danke, probiere ich morgen mal aus.
Titel: Re: Geo - Punkte in Goolge Maps einfügen (?JavaScript?)
Beitrag von: datekk am Oktober 12, 2017, 11:00:06
Lachtaube for President!!!!! 1000 Dank. Da probier ich mal mit rum ;)