• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Link zu Google Maps oder ähnlichem Routenplaner

Hallo!

In meiner Kundendatenbank habe ich über einen Link auch die Route bis zum Kunden nach Hause eingebettet - über einen Link, den ich auf Google Maps erstelle und dann in ein Formularfeld einfüge.

Allerdings verfügt meine Datenbank über die komplette Postadresse - ist es irgendwie möglich, anhand der Postadresse den Link zum Einbetten von Google Maps oder einem ähnlichen Routenplaner automatisch zu erstellen?
 
Werbung:
Code:
https://www.google.de/maps/dir/{startstraße}+{starthausnummer},+{startplz}+{Startort}/{zielstraße}+{Zielhausnummer},+{Zielplz}+{Zielort}/

Hoffe klappt nun den Link richtig darzustellen :D
Also du musst nun die Werte die ich in {} gepackt habe ersetzen. Leerschritte werden als + dargestellt, also Test Weg = Test+Weg

Damit solltest du doch automatisch generieren können, oder meinst du was anderes
 
Werbung:
Und bin somit FAST fertig - wenn da nicht diese nervige Kleinigkeit wäre....
Die Adressen, welche Umlaute beinhalten, werden von Google Maps nicht angenommen. Soweit so gut - habe folgendes versucht:

Code:
function replace_letters($text) {
    $text = str_replace(" ", "+", $text);
    $text = str_replace("ä", "ae", $text);
    $text = str_replace("ü", "ue", $text);
    $text = str_replace("ö", "oe", $text);
    $text = str_replace("ß", "ss", $text);
    $text = str_replace("Ä", "Ae", $text);
    $text = str_replace("Ü", "Ue", $text);
    $text = str_replace("Ö", "Oe", $text);
    return $text;
}

$origin = replace_letters($ich->einrichtung_strasse."+".$ich->einrichtung_plz."+".$ich->einrichtung_ort);

Eigentlich dürfte die Variable $origin doch keine Umlaute mehr beinhalten, oder?... Tut sie aber! Und zwar weil die Umlaute aus der Datenbank nicht als Umlaute kommen, sondern als "�". Wie kommt das denn?
 
Zuletzt bearbeitet:
Werbung:
Das obere gilt für den lokalen Server. Anders ist es, wenn ich alles auf meinen Webserver hochlade. Da ist es so:

Gebe ich in meinen PHP Code einen Text mit Umlaut ein, wie z.B. "Elsässer Str.", wird er dargestellt als "Elsässer Str. 9", aber das "ä" wird durch str_replace korrekt in "ae" umgewandelt. Lasse ich aber einen Text as der Datenbank lesen, wird er zwar zunächst mit einem Umlaut dargestellt, also "Elsässer Str. 9", das scheinbar vorhandene "ä" wird aber durch str_replace nicht erkannt, danach steht immer noch "Elsässer" da. Warum?
 
Beachte die verwendeten Zeichensatz an allen Stellen. Also sowohl in der Datenbank, der Datenbanktabelle, der -spalte und der Datenbankverbindung wie auch bei allen verwendeten Dateien. Außerdem solltest Du den Content-type im HTTP-Header beachten der im Browser ankommt. Wenn an all diesen Stellen ein einheitlicher Zeichensatz angegeben ist (idealerweise utf8) dann solltest Du weder etwas umwandeln müssen noch Zeichenprobleme haben.
 
Werbung:
Es ist definitiv die Kodierung, deine Funktion macht, was du definiert hast.
utf8_encode() hilft, wenn man keinen Einfluss auf die Datenbank Kodierung nehmen kann.
Anscheinend hast du aber noch andere Probleme, aus
müsste
Elsaesser+Str. werden

Überdenke ob es nicht besser wäre, das so zu machen:
PHP:
    $origin = replace_letters($ich->einrichtung_strasse)."+".replace_letters($ich->einrichtung_plz)."+".replace_letters($ich->einrichtung_ort);
und die Ersetzung von Leerzeichen aus der Funktion heraus zu nehmen. Aus Bad Vöslau würde sonst Bad+Voeslau
 
Aber es soll durchaus Bad+Voeslau dort stehen, das ist Absicht.
Ich habe die Kollationen der einzelnen Tabellen, Felder etc. angepasst, aber völlig ohne Erfolg. utf8_encode hat dann geholfen.
 
Zurück
Oben