0

Standort-Feld: Fragen und Ideen

Hier der ursprüngliche Post:

1. Ich möchte gern das Standort-Feld sinnvoll benutzen. Als Handwerker im Außendienst habe ich eine Kunden-Datenbank mit vielen Adressen (Vorname, Nachname, Straße, Nr, PLZ, Ort), die ich gern auf einer Karte angezeigt haben möchte. Kann ich das Standort-Feld irgendwie automatisch mit den vorhandenen Daten befüllen (Massendatenänderung)?

2. Eine vielleicht (hoffentlich) einfache Erweiterung in der MAC Desktop-Version wäre den Standort in der Apple Karten-App anzeigen zu lassen, damit ich mit dem angezeigten Standort auch weiter arbeiten kann - z.B. die Entfernung (Fahrkosten) und auch eine Route berechnen lassen.

3. Als höchste Kunst :-) würde ich mir dann mehrere Pins auf der Karte anzeigen lassen, um sinnvollen Touren zu meinen Kunden zu organisieren. Also z.B. möchte ich auf einen Kunden klicken, mir seinen Wohnort auf der Karte anzeigen lassen und dazu andere Kunden in x Kilometer Umkreis. Und dann nach anderen Kriterien filtern (z.B. nur Kunden, bei denen ich NICHT in den letzten 2 Jahren war oder so ähnlich).

30 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Das ist aber sehr große Wunschliste. Ich glaube, mit massendatenänderung kannst nur arbeiten, wenn du Längen und Breiten von den Adressen kennst.
    dann ist die Formel:
    ---
    Standort:=location("Adresse",Breite, Länge)

    Die Rute kannst du eventuell über Google maps berechnen (vielleicht geht auch mit apple Karen). Schreib einfach in eine Befehlsschaltfläche die Formel:
    ---
    openURL("http://maps.google.com/maps?saddr=" + text(Standort1) + "&daddr=" + text(Standort2) + "&hl=de")
    ---

    Und die Luftlinie zwischen zwei Standorten kannst du mit Formel berechnen:
    ---

    let PI := 3.141592653589793;
    let dL := longitude(Standort1) - longitude(Standort2);
    let dB := latitude(Standort1) - latitude(Standort2);
    let BL := sqrt(sqr(dL) + sqr(dB));
    PI * 6371 * BL / 180

    ---
    Das Berechnungsfeld musst du mit 2 Stellen nach Komma und als km formatieren. Pi habe ich in Ninox Dokumentation nicht gefunden, deswegen als Variable deklariert.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Die Anführungszeichen musst du natürlich mit Mac ersetzen
    • Filip
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wow.... sehr cool. Mit deinem Input hab ich mir nun eine Schaltfläche gebastelt, die die Apple Karten App öffnet und dort die Route von meinem Standpunkt (Büro) zum entsprechenden Kunden anzeigt.

    Meine Formel sieht so aus:

    ---
    openURL("http://maps.apple.com/maps?daddr=" + text('Straße' + " " + 'Hausnr.' + " " + PLZ + " " + Ort))
    ---

    Die Entfernung der Route kann man dann in der Apple Karten App immerhin leicht ablesen.

    Das war schon mal sehr hilfreich. Danke Leo.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Filip,
    Das ist ja super. Ich habe jetzt für alle, die mit Apple-maps Links basteln möchten, einen Link.

    https://developer.apple.com/library/content/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

    Grüße
    Leo
    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen,

    ich habe auch noch eine Frage zum Standortfeld: Ich habe eine große Datensammlung mit Adressen, die ich mit dem Standortfeld eingepflegt habe. Jetzt möchte ich die Ortsnamen aus den Standortfeldern in ein Berechnungsfeld extrahieren, damit ich nach Ortsnamen sortieren kann. Kann mir jemand mit der Formel helfen, falls das geht?

     

    Liebe Grüße

    Alfred

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielleicht geht es ja so ähnlich wie bei einem Datumsfeld, da kann man ja auch das Jahr, den Monat oder den Tag herausziehen. Für das Standortfeld habe ich aber keine ähnliche Funktion gefunden.

    • Tacho
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Mittels:

    ----
    item(split(text(Standort), ", "), 0)     erhält man die Strasse und die Hausnummer
    item(split(text(Standort), ", "), 1)     erhält man die PLZ und Ort (leider nur gemeinsam)
    item(split(text(Standort), ", "), 2)     erhält man das Land
    ----

    Wie man PLZOrt auftrennt, würde mich auch interessieren.

    Gruß
    Tacho

    • Support
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Es gibt

    latitude(Standort);

    longitude(Standowrt);

    text(Standort)

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank,

    Habe es mit..

    item(split(text(Standort), ", "), 1)     erhält man die PLZ und Ort (leider nur gemeinsam)

    .. probiert, bekomme aber immer eine Fehlermeldung. Muss ich noch mehr als diese Zeile in das Funktionsfeld schreiben?

     

    Viele Grüße

    Alfred

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ich habe natürlich nur

    item(split(text(Standort), ", "), 1)

    eingegeben.

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Ich habe gerade im Online-Arbeitsbereich über meinen iMac die Testdatenbank "55_Standort" angelegt. Dort klappt es, mache ich die Funktionseingabe über das iPad, bekomme ich eine Fehlermeldung

    • Tacho
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Meist sind die falschen Anführungszeichen verantwortlich. Auf der IPad-Tastatur die Nummern-Taste (ganz unten links) anklicken, dann die Taste unter der Nummer 1 anklicken (festhalten) und das erste Anführungszeichen wählen). Dann sollte es auch auf dem IPad klappen 

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Alfred, hast du gesehen wie ich die Datenbank geändert habe. War das so nach deinen Vorstellungen.

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Wenn du nur den Standort haben willst musst du es so machen wie in der Beispiel Datenbank. Schau mal hab es nochmal angepasst.

    let stringEnd := index(Standort_, ",");
    substring(Standort_, 0, stringEnd)

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Super, danke für eure Hilfe. Es gibt aber noch ein kleines Problem in der Beispieldatenbank 55 - hab es dort kommentiert. Liebe Grüße Alfred

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Alfred,

    schau mal hab es verbessert, ich denke so wolltest du es haben. Es gibt wie gesagt verschiedene fälle den Index wie in meinem ersten Beispiel nutzt man nur wenn man an einer bestimmten stelle, den String kürzen möchte. Das war mir anfangs nicht bewusst das du alle rausschneiden möchtest. Dann sollte man schon das item(split(text(Standort), ", "), 0) nutzen.

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank Bastian, das Problem ist noch nicht ganz gelöst - bei einigen Orten ist im Standortfeld eine Postleitzahl vorangestellt, ist es möglich, diese Zahl zu entfernen - so etwas wie if number...then ?

     

    Liebe Grüße

    Alfred 

    • Alfred
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank Bastian, das Problem ist noch nicht ganz gelöst - bei einigen Orten ist im Standortfeld eine Postleitzahl vorangestellt, ist es möglich, diese Zahl zu entfernen - so etwas wie if number...then ?

     

    Liebe Grüße

    Alfred 

    • andreas_mtscouteu
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, gibt es auch eine Möglichkeit, den Standort als Markierung in eine eigene Goggle Map zu setzen?

    Ich probiere dies schon lange, leider bisher noch ohne Erfolg.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Andreas,

    ja das geht, dafür musst du bei deinem GoogleAPIs Account Staticmap freigeben. Und, wenn du schon dabei bist, auch geocode freigeben und die lat und lng erstmals durch google ermitteln lassen, dann die Koordinaten über Statikmap eingeben. 

    Leo

    • TomTom
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo

    zur Frage von Tacho: Wie man PLZOrt auftrennt, würde mich auch interessieren.

    Mit Hilfe von Tacho“s Post vom 4.Apr.2018 habe ich PLZ und Ort aus dem Standort extrahiert und dann mit Substr die ersten 5 Zeichen bzw. für den Ort alles ab dem 6 Zeichen in dem String genommen.

    ich habe es so gemacht

    let myOrt := item(split(text(”Aktueller Ort“), ”, “), 1);
    PLZ := substr(text(myOrt), 0, index(text(myOrt), ” “));
    Ort := substr(text(myOrt), 6);
    Adresse := item(split(text(”Aktueller Ort“), ”, “), 0)

     

    kürzer aber etwas unübersichtlicher wäre es so:

    PLZ := substr(text(item(split(text(”Aktueller Ort“), ”, “), 1)), 0, index(text(item(split(text(”Aktueller Ort“), ”, “), 1)), ” “));
    Ort := substr(text(item(split(text(”Aktueller Ort“), ”, “), 1)), 6);
    Adresse := item(split(text(”Aktueller Ort“), ”, “), 0)

    PS: vermutlich geht das nur für Deutschland weil hier die PLZ 5 Stellung sind.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Man könnte es auch mit der Funktion extractx() lösen.

    Wenn der Inhalt des feldes “Aktueller Ort” folgendes Format hat: Plz Ort (Bsp. 8000 München)

    PLZ := extractx(text(Aktueller Ort),“[0-9]{4,}”,“$0”) Bedeutet: alle Zahlen im String, die mindestens  4stellig sind.

    Ort := extractx(text(Aktueller Ort), “[A-za-zäöüÄÖÜß]{1,}”, “$0”) Bedeutet alle Buchstaben im String, die mindestens 1stellig sind.

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Erweiterung:

    Bsp. 8000 München - Garching
    Ort := extractx(text(Aktueller Ort), “[A-Za-zäöüÄÖÜß-\s*]{1,}”, “$0”) 
    Fragt alle Textzeichen, Umlaute, Bindestriche ab. Ignoriert dabei Leerzeichen(\s*). Wenn ein anderes Zeichen wie “/” mit abgefragt werden soll, muss es in die eckige Klammer mit aufgenommen werden. [A-Za-zäöüÄÖÜß/-\s*]

    • mirko3
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe. Der Ausschluß der Leerzeichen wird durch ^\s codiert.

    lg Mirko

    • Peter_Gaede.2
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Sicherer, vor allem bei großen Distanzen, ist diese Formel:

    let lat1 := latitude(“Standort1”);
    let lon1 := longitude(“Standort1”);
    let lat2 := latitude(“Standort1”);
    let lon2 := longitude(“Standort1”);
    format(111.324 * acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)), “0.00 km”)

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 30Antworten
  • 10680Ansichten
  • 2 Folge bereits