Google Maps per API in WebBrowser Steuerelement
Hallo Access-Experten,
ich komme ohne Hilfe wohl nicht weiter: Ich möchte in einem Access (2003) Formular in einem WebBrowser-Steuerelement eine Karte von Google Maps anzeigen, aber nicht die normale Website sondern nur die Karte per Google Maps API.
Normale Google Maps Website per WebBrowser.Navigate anzeigen: Funktioniert.
Google Static Maps API (URL mit Parametern) per WebBrowser.Navigate anzeigen: Funktioniert.
Google Maps API Beispiel (http://code.google.com/intl/de/apis/maps/documentation/examples/map-simple.html) per WebBrowser.Navigate anzeigen: Funktioniert.
Google Maps API Beispiel runterladen und die HTML-Datei (file:///C:/...) per WebBrowser.Navigate anzeigen: Funktioniert auch!
Ich habe im Netz Lösungen gesehen, die eine externe Internetseite (PHP) verwenden, denen sie von Access aus die Parameter schicken, und diese Seite ruft dann die Google Api auf. Ich möchte aber die HTML-Seite (zum Testen imitiere ich die google-Beispiel-Datei) per VB-Code generieren (Code siehe unten). Das klappt auch. Die initialize-Funktion erzeugt aber einen Fehler: "GMap2 ist undefiniert". Offenbar wird das externe JavaScript, wo GMap2 definiert wird, nicht richtig verarbeitet. Aber woran liegt das? Kann es daran liegen, dass ich keinen eigenen Google-API-Key angegeben habe? Google sagt aber, dass man bei lokalen Tests der Key ignoriert wird. Google gibt den Tipp, dass man bei Problemen mal window.location abfragen soll. Das ist in meinem Fall ein leerer String. Oder ist das ein generelles Problem des WebBrowser-Controls? Wie habt ihr das in dem Google Maps Modul gelöst? Könnte mir jemand vielleicht den Code von eurem Modul schicken?
WebBrowser5.Navigate "about:blank"
DoEvents
Dim scriptNode1 As Object, scriptNode2 As Object, headNode As Object
Set scriptNode1 = WebBrowser5.Document.createElement("SCRIPT")
scriptNode1.Type = "text/javascript"
scriptNode1.src = "http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
Call headNode(0).appendChild(scriptNode1)
Set scriptNode2 = WebBrowser5.Document.createElement("SCRIPT")
scriptNode2.Type = "text/javascript"
scriptNode2.Text = "function initialize() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById('map_canvas')); map.setCenter(new GLatLng(37.4419, -122.1419), 13); map.setUIToDefault(); } }"
Set headNode = WebBrowser5.Document.getElementsByTagName("HEAD")
Call headNode(0).appendChild(scriptNode2)
Dim sHTML As String
sHTML = "<div onClick='initialize()' id='map_canvas' style='width: 500px; height: 300px; background-color: red;'></div>"
WebBrowser5.Document.Body.InnerHTML = sHTML
Wäre super, wenn mir jemand weiterhelfen könnte.
Google Maps per API in WebBrowser Steuerelement
Hi,
GMap2 ist ja kein javascript-Objekt. Wahrscheinlich versucht das Script, schon darauf zuzugreifen, bevor GMap2 von Google geliefert wird.
Da es sich bei der Google Maps Api um einen kostenpflichtigen Dienst handelt, wenn es in eine Anwendung eingebunden wird, dürfte Google auch Support bieten. Wende dich also am Besten direkt an Google.
bis denn
Martin
Google Maps per API in WebBrowser Steuerelement
Hallo MArtin,
danke für die Antwort.
GMap2 ist ja kein javascript-Objekt.
Meinem Verständnis nach ist GMap2 schon ein JavaScript-Objekt. Aber das ist vermutlich nicht so wichtig.
Wahrscheinlich versucht das Script, schon darauf zuzugreifen,
bevor GMap2 von Google geliefert wird.
Hat jemande eine Idee, wie ich das verhindern könnte?
Da es sich bei der Google Maps Api um einen kostenpflichtigen Dienst handelt, wenn es in eine Anwendung eingebunden wird, dürfte Google auch Support bieten. Wende dich also am Besten direkt an Google.
Google Maps API ist nicht kostenpflichtig. Die Lizensierung richtig sich nachd em Einsatzweck. Wie habt ihr in eurem Google Maps Modul denn das Problem gelöst? Mit einer externen Internetseite (PHP oder Ähnliches), die die Parameter verarbeitet oder auch mit einer VB-generierten Seite?
Gruß,
Tilman
Google Maps per API in WebBrowser Steuerelement
Hi,
eigentlich ist das hier ganz klar das falsche Forum für Dein Anliegen. Ein Javascript-Forum wäre definitiv besser geeignet. Aber trotzdem versuche ich mich mal kurz daran...
Meinem Verständnis nach ist GMap2 schon ein JavaScript-Objekt. Aber das ist vermutlich nicht so wichtig.
Hab mich wohl missverständlich ausgedrückt. Es ist kein natives JS-Objekt, sondern es wird per Script erzeugt.
Wahrscheinlich versucht das Script, schon darauf zuzugreifen,
bevor GMap2 von Google geliefert wird.
Hat jemande eine Idee, wie ich das verhindern könnte?
Ein Code wie
<head> <script type="text/javascript"> alert("Hallo Welt") </script> </head> <body>
wird noch beim Laden des Dokuments ausgeführt; also noch bevor es vollständig ist. Anders sieht es im folgenden Fall aus:
<head> <script type="text/javascript"> function bla(){ alert("Hallo Welt") } </script> </head> <body onload="bla()">
Dann startet das Script erst, nachdem die HTML-Seite vollständig geladen wurde. Und das von Google extern zur Verfügung gestellt GMap2 müsste dann eigentlich auch schon da sein.
bis denn
Martin
Google Maps per API in WebBrowser Steuerelement
Ein Code wie
<head> <script type="text/javascript"> alert("Hallo Welt") </script> </head> <body>wird noch beim Laden des Dokuments ausgeführt; also noch bevor es vollständig ist. Anders sieht es im folgenden Fall aus:
<head> <script type="text/javascript"> function bla(){ alert("Hallo Welt") } </script> </head> <body onload="bla()">Dann startet das Script erst, nachdem die HTML-Seite vollständig geladen wurde. Und das von Google extern zur Verfügung gestellt GMap2 müsste dann eigentlich auch schon da sein.
Das ist mir schon bewusst. Und drum frage ich ja auch in eurem Access-Forum: Wisst ihr etwas darüber, ob Access, oder besser gesagt dieses Webbrowser-Control, Probleme hat so eine exterene Javascript-Quelle zu laden? Wie habt ihr das in eurem Modull den gelöst?
Johannes
RSS Einträge
Kontakt