...im Prinzip sollen ja nur die deutschsprachigen Namen (also lateinische Buchstaben) aus den Listen extrahiert werden.
Z. Bsp. für die Stadt:
Rabat (lateinische Schrift)
ⵔⴱⴰⵟ (Tifinagh, Amazigh/Berberschrift)
الرباط (Arabisch)
Deshalb hab ich einen etwas anderen Weg versucht. Alle lateinischen Zeichen kann man ja über den ASCII Code ermitteln. Alles was darüber hinausgeht ist chinesisch, arabisch, kyrillisch oder, oder, oder...
Das kann natürlich zu Problemen kommen, wenn in den Namenslisten auch andere europäische oder andere lateinisch geschriebene Namen als 2. oder andere Folgewerte vorkommen, aber davon gehe ich vorerst nicht aus
Z. Bsp. für die Stadt:
Rabat (lateinische Schrift)
ⵔⴱⴰⵟ (Tifinagh, Amazigh/Berberschrift)
الرباط (Arabisch)
Deshalb hab ich einen etwas anderen Weg versucht. Alle lateinischen Zeichen kann man ja über den ASCII Code ermitteln. Alles was darüber hinausgeht ist chinesisch, arabisch, kyrillisch oder, oder, oder...
PHP-Code:
let
Quelle = Json.Document(Web.Contents("https://nominatim.openstreetmap.org/search?format=json&q=Rabat%2C+Marokko")),
// Quelle = Json.Document(Web.Contents("https://nominatim.openstreetmap.org/search?format=json&q=Bad Homburg%2C+Bundesrepublik Deutschland")),
Quelle1 = Quelle{0},
ZuTabelle = Record.ToTable(Quelle1),
Liste = Text.Split( ZuTabelle[Value]{12},","),
Stadtnamensliste = Text.Split(Liste{0}," "),
Landesnamensliste = Text.Split(Text.Trim(Liste{List.Count(Liste)-1})," "),
Stadt = TC(Stadtnamensliste),
Land = TC(Landesnamensliste),
//Funktion zum Zusammensetzen der Namen mit Leerzeichen
TC = (liste as list) as text =>
let
// Filter: erster Buchstabe < 255, also ASCII Code, der überwiegend Zeichen der deutscher Verwendung enthält
Gefiltert = List.Select(
liste,
each Character.ToNumber(Text.At(_, 0)) < 255
),
// Zu einem Text verknüpfen
Ergebnis = Text.Combine(Gefiltert, " ")
in
Ergebnis,
#"Transponierte Tabelle" = Table.Transpose(ZuTabelle),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Transponierte Tabelle", [PromoteAllScalars=true]),
#"Andere entfernte Spalten" = Table.SelectColumns(#"Höher gestufte Header",{"lat", "lon"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Andere entfernte Spalten", "Land", each Land),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Ort", each Stadt),
#"Neu angeordnete Spalten" = Table.ReorderColumns(#"Hinzugefügte benutzerdefinierte Spalte1",{"Ort","Land", "lat", "lon"})
in
#"Neu angeordnete Spalten"
Das kann natürlich zu Problemen kommen, wenn in den Namenslisten auch andere europäische oder andere lateinisch geschriebene Namen als 2. oder andere Folgewerte vorkommen, aber davon gehe ich vorerst nicht aus
Mein Computer schlägt mich beim Schachspielen, aber ich bin sicher, dass ich ihn beim Kickboxing schlagen werde.
Ciao
Ralf

PQ Abfrage Geodaten

