[Modul] GPS Position auf Google Maps Karte live verfolgen

Ich habe ein neues Update hochgeladen. Dies sollte jetzt mit der 7.0 auf Web (Neu)/App (Alt/Neu)/IPSView/WebFront kompatibel sein.

paresy

1 „Gefällt mir“

Leider läuft es nicht im neuen Webfront im Browser (Edge und Chrome).
Die Karte wird für ca 1/2 sec. geladen, dann kommt die Java-Fehlermeldung.
image

Aber nur im Browser (Kachel) läuft es nicht, in der Smartphone-App (Kachel) läuft es.
Auch im alten Webfront läuft es einwandfrei…

Kannst du mal in der Entwicklerkonsole vom Browser schauen, ob da ggf. mehr Infos zu finden sind?

paresy

Sende dir die Ausgabe der Konsole mal als PN.
Ich kann damit leider nichts anfangen

Google Maps JavaScript API error: RefererNotAllowedMapError

Google Suche sagt: The "RefererNotAllowedMapError" error **suggests that "Application restrictions" is enabled in your Google Maps API key settings with "HTTP referrers (web sites)" option** .

D.h. dein API Key für Google Maps hat irgendwelche Restriktionen drin.

paresy

Das stimmt schon, wenn ich den Eintrag für die Webseite lösche dann funktioniert es.
Nur die Frage ist, warum geht es denn bei allen andern Webfronts (altes Webfront, Kachel-Visualisierung auf dem Handy)?
Es scheint so, als würde die Browser-Version nicht mit demselben Absender anfragen wie das alte Webfront und die Handy-Version.
Gibt es eine Möglichkeit, dies in der Cloud-Konsole zu prüfen, welche Anfragen für den API-Key (und woher) kommen? Ich habe bis jetzt nichts gefunden.

Ich verwende immer noch dieses Script zum umrechnen der GPS-Daten in Dezimalwerte.

Dies funktioniert auch immer noch, ich erhalte aber jedes Mal diese Fehlermeldungen:

Warning: A non-numeric value encountered in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Warning: Undefined array key 2 in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Line 9 ist diese:

        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);

Kann mich jemand bei der Fehlersuche unterstützen, ich finde den Fehler nicht…

Dein Array hat vermutlich nur 2 Werte, bei üblicher GPS Darstellung, somit also 0 und 1.
Deine Schleife geht aber bis 2 wegen <3, wenn du dort <2 nimmst, sollte der Fehler weg sein.

Danke für die rasche Antwort.
Stimmt, die eine Fehlermeldung ist weg.

<?

$pos = getvalue(20721); 

function gps_konverter($pos){
    $npos = preg_split('/[\'"°]/Uu', $pos);
    $dec = 0;
    for($i = 0;$i < 2;$i ++){
        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);
    }
    return $dec;
}

$result = gps_konverter($pos);
SetValue (38562, $result);

Jetzt noch der Fehler mit dem nicht nummerische Wert in Linie 9

Warning: A non-numeric value encountered in C:\ProgramData\Symcon\scripts\44023.ips.php on line 9

Edit:
Ich glaub ich sehe den Grund, und das ist der Wert der Variable unter $pos (7°53.9723 E)
Der Buchstabe E wird das Problem sein…
Wie kann ich diesen Buchstaben entfernen bevor die Funktion kommt?

z.B. mit PHP: str_replace - Manual

paresy

Das wars, danke für euere Unterstützung

<?

$pos = getvalue(20721); 
$arr = array("E" => "","N" => "");
$pos = strtr($pos,$arr);

function gps_konverter($pos){
    $npos = preg_split('/[\'"°]/Uu', $pos);
    $dec = 0;
    for($i = 0;$i < 2;$i ++){
        $dec += $i == 0 ? $npos[$i] : $npos[$i] / pow(60, $i);
    }
    return $dec;
}

$result = gps_konverter($pos);
SetValue (38562, $result);