EInbindung von Google Maps mit Verkehrslage

Hallo,

ich habe versucht Google Maps mit Verkehrslage einzubinden.
Über „externeSeite“ im Konfigurator wird die Seite im Webfront nicht angezeigt.
Andere Seiten (wie IP-Symcon :: Automatisierungssoftware) funktionieren !
Mache ich grundsätzlich etwas falsch oder geht es wirklich nicht wegen Besonderheiten der Google Seite.

Claus

Was genau ist denn dein Plan? Anzeigen der Karte oder nur zB die Fahrtdauer? Zu der Fahrtdauer hab ich nämlich schon was über ne spezielle API von Google…

Gesendet von iPhone mit Tapatalk

Nein viel einfacher. Es soll nur das Verkehrsaufkommen angezeigt werden.
Der morgendliche Blick auf die Stausituation in unserem Umkreis.

Das ist eigentlich auch kein Problem.
Aber auch einbetten geht nicht so einfach ohne Api
aber
Google Maps Embed API Â |Â Google Developers

Guckssu da!
Wenn du dich da registrierst etc. kannst du Google Maps Karten einbinden so wie du es magst;)

denn html code im IP symcon Ordner unter
->webfront -> users als xml Datei abspeichern
in der Zeile _> geocoder.geocode({ ‚address‘: ’ Berlin’ }, function(results, status) {
gewünschten Ort umändern und speichern
und im webfront als externe Seite einbinden. -> user/Htmls/Google maps mit verkehr.htm



</code>

<p><script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=de"></script>

<script type="text/javascript">
    function initialize_google_maps_api_1() {

      var geocoder = new google.maps.Geocoder();

      geocoder.geocode({ 'address': ' Berlin' }, function(results, status) {

        if (status == google.maps.GeocoderStatus.OK) {

          var infowindow;
          var latlng = results[0].geometry.location;

          var options = {
              zoom: 12,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP,
              disableDefaultUI: false
            }

            var map = new google.maps.Map(document.getElementById('layout_google_maps_api_1'), options);
            map.setCenter(results[0].geometry.location);

            var marker_1 = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location,
                title: 'Berlin',
                icon: '',
                animation: google.maps.Animation.DROP
              });

var layer_traffic = new google.maps.TrafficLayer();
              layer_traffic.setMap(map);



        } else {
          // alert('Ungültige Abfrage: ' + status);
        }

      });

    }

    google.maps.event.addDomListener(window, 'load', initialize_google_maps_api_1);
    </script><div id="layout_google_maps_api_1" style="width: 100%; height: 95%"></div></p><br />


Danke dir !
Habe es eingebaut, und tut ! Dann geht es auch ohne Entwickleraccount.

Danke, läuft!

Allerdings muss man die Datei natürlich als *.html (nicht *.xml) abspeichern. XML meint wahrscheinlich das Format, nicht die Endung. Hatte ich erst falsch verstanden.

Grüße
galleto

Das funktioniert so nicht mehr. Hab heute entdeckt, dass im Webfront unter dem TabPane nichts mehr angezeigt wird (nur blauer Hintergrund). Da die Datei direkt im Browser noch funktioniert, wird es vermutlich eine Änderung an IPS sein, oder?
Hat jemand einen Hinweis für mich?

Grüße
galleto

…auch ich kein seit kurzem (seit dem GoogleMaps-Update vor ein paar Tagen?) meine Karten nicht mehr darstellen:

Ein paar Tests lieferten folgende Ergebnisse:

  • statt der Karte wird nichts/leerer Rahmen im WebFront+iFront angezeigt (bisher ging es mit HTML-Box über <img src="https://…)
  • iFrame ebenfalls Fehlanzeige
  • Einbindung über http statt https geht auch nicht
  • anderer HTTP-Code geht
  • Bilder aus anderen Quellen (http/https) ebenso
  • rechte Maustaste -> Speichern untern liefert die korrekte Bilddatei als Download

Hat jemand eine Idee, wo sich die vermutete Änderung bei der Google Maps API mit IPS beißt? Läuft bei irgendjemanden die Karten-Anzeige noch? In diesem Beitrag klingt es nach ähnlichen Problemen.

Danke für jede Hilfe!

Carsten

Hallo,

ja, das scheint ähnlich zu sein. Da macht offensichtlich das der in HTML-Code enthaltene JavaScript Probleme macht und macht daher ein Umweg über ein WebHook erforderlich…

Ich habe mich in den letzten Tagen auch relativ intensiv mit GoogleMaps beschäftigt (Husqvarna Automower Connect - Seite 4).

Google hat in den letzten Tagen Ihre Bedingungen geändert, man brauch einen API-Key - was ja nicht neu ist, aber jetzt verpflichtend mit einem GoogleCloud-Konto verknüpft ist.
Der Zugriff ist auch nicht mehr grundsätzlich kostenlos, sondern es gibt (nach meiner Interpretation) einen monatlich 200$ Freibetrag (der aber für 25.000 Aufrufe reicht) - also ist es (im Augenblick) für normale Anwendungen faktisch kostenlos.

Und ich habe festgestellt, das es anscheinend (nicht 100% bestätigt) es sich anders verhält, ob man aus dem Browser eine Karte aufruft oder zB via IPS; von daher war bei mir die Anzeige im Browser nicht immer aussagekräftig.
Ich habe als Test den Code als HTML-Seite in /var/lib/symcon/webfront/user abgelegt und den Aufruf via IPS (<ips-name>:3777/user/<script>) gemacht, dabei der Firefox verwenden und die Web-Konsole aktiviert. Da gibt’s dann manchmal Fehlermeldungen, mit denen ich sogar manchmal was anfangen kann :-(.

Vielleicht hilft Dir das weiter …

Gruß
demel

Also ich mach das seit längerem über die Static API (embeded) und läuft seit je her stabil.

Sieht dann so aus:

wie ist der Aurzf bei dir, mit welchen Informationen bekommst du die Strasse markiert bzw die Fahrtdauer?

bei dynamic sind die RTTI (real-time-trafic-information) mit dabei, alos die aktuelle Stau-Information.

Es ist im übrigen etwas merkwüriüdig, in der google-doku zu der googlemaps-static-api steht, das man einen api-key benötigt, funktioniert aber bis jetzt auch ohne api-key.

Das sieht ungefähr so aus (Auszug):


$loc_home   = 'Start-Straße-PLZ-Ort-URL-Encoded';  
$loc_dest     = 'Ziel-Straße-PLZ-Ort-URL-Encoded';
$iframe_src  = 'https://www.google.com/maps/embed/v1/directions?'; 
	
	if($direction == 0) {
		$iframe_src = $iframe_src.'origin='.$loc_home.'&destination='.$loc_dest.'&key='.$api_key;	
	}
	else {
		$iframe_src = $iframe_src.'origin='.$loc_dest.'&destination='.$loc_home.'&key='.$api_key;	
	}
	$iframe_url 	= '<iframe width=\''.$iframe_width.'\' height=\''.$iframe_height.'\' frameborder=\'0\' style=\'border:0\' src=\''.$iframe_src.'\' allowfullscreen></iframe>'; 

Bin mir gerade nicht 100% sicher, aber die werden auch angezeigt. Aber im Moment habe ich keinen Stau auf meiner Strecke :smiley:

Also ich nutze sie mit Key (siehe Aufruf)!

CIAo Pitti

aha, die Directions-API. Die hatte ich mir noch nicht angeschaut. prima, dann schau ich mir die auch mal an.

Die StaticAPI ist ja auf jeden Fall unkomplizierter in der Einbindung in IPS und wenn man das interaktive nicht braucht …

wäre interessant. In der DynamicMap sind neben den Straßen ja grüne, gelbe oder rote Striche …

wenn das so wäre, wäre das ja vielleicht eine Lösung für den user CityJump … er hat allerdings kein „Fahrziel“ (wenn ich den Post richtig lese).

demel

…dann muss ich meine Aufrufe über die Static API mit einem Key versehen und testen.

Was aber spannend ist: Rufe ich die Karte ohne Key über den Connect-Dienst auf, zeigt er mir alles ganz normal an, intern aber wie oben beschrieben…:confused:

das is schon merkwürdig, wobei mir zwei dinge noch einfallrn würden
a) beim zusammenbau der url verwedest du da rawurlencode()? nur für den Fall, das in dem api_key ein ungültiges zeichen drin ist
b) wenn du einen api-verwendest … hast du auch die api’s aktiviert?

Hallo,

nach diversen Versuchen läuft Google Maps bei mir wieder.

Ich habe mir einen API key zugelegt und die erste Zeile im Skript aus Beitrag 5 wie folgt geändert:

<p><script type=„text/javascript“ src=„https://maps.googleapis.com/maps/api/js?key=xxx“></script>

xxx müsst Ihr durch Euren API key ersetzen.

Gruß

Swifty

Wie hast du den API Key genau bekommen?
Ich lande da nach ein paar Schrietten bei „Abrechnungskonto erstellen“ und habe nicht wietergemacht.

Ja, ein Abrechnungskonto muss man erstellen, das ist leider seit Anfang Juni so.
Wobei der Sachverhalt sich so darstellt

  • man hat jeden Monat ein Guthaben von 200$, was (lt. Google für 28500 Aufrufe eine dynamic Map ausreicht oder 100.000 static Maps oder …)
  • wenn man darüber hinaus kommt, wird abgerechnet
  • man hat 12 Monat Test mit diese 200$, danach muss man sich entscheiden.
    Ob man an Map’s ohne API-Key ran kommt ist unklar. Nach der Doku gar nicht - auch nicht an static-Maps, aber in Realität kommt man noch dran.

ich habe in dem README.md von meinem experimentellen GoogleMaps-Modul auch ein paar Snaps / Infos untergebracht (aus der Erinnerung), falls Du ein Konto anlegte und auf etwas stösst, was man erwähnen sollte, würde ich mich über eine info freuen, damit ich das ergänzen kann.

Nachtrag zu Static API - die Verkehrslage, also farbliche Darstellung wird angezeigt

Ciao Pitti