Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Geo - Punkte in Goolge Maps einfügen (?JavaScript?)

Begonnen von datekk, Oktober 10, 2017, 19:38:28

⏪ vorheriges - nächstes ⏩

datekk

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

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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Xoar

Ich kann zwar nicht helfen, aber genau das brauche ich auch für mein nächstes Projekt :)


Lachtaube

#2
Da ich keinen API-Key von Google besitze, habe ich hier nur ein Beispiel für Google Static Maps. 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 vermutlich einen guten Einstiegspunkt
Grüße von der (⌒▽⌒)

Xoar


datekk

Lachtaube for President!!!!! 1000 Dank. Da probier ich mal mit rum ;)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps