Zum Hauptinhalt springen

Inhaltselemente nach Standort filtern

Prüfer arbeiten in der Regel an dem Objekt, vor dem sie gerade stehen. Wenn Ihr Inhaltstyp Hunderte Gebäude enthält, ist es mühsam und fehleranfällig, sich durch die gesamte Liste zu scrollen, um genau dieses eine Gebäude zu finden.

Mit dem Standortfilter können Sie die aktuelle Position des Geräts in einer Abfrage von Inhaltselementen verwenden. So kann der iCL Filler nur jene Elemente anzeigen, die sich in der Nähe des Prüfers befinden, und die Liste zusätzlich so sortieren, dass das nächstgelegene Element ganz oben steht.

Für den Einstieg

Wie es funktioniert​

Der Standortfilter kombiniert zwei Informationen:

  1. die Koordinaten am Inhaltselement - ein Feld Ihres Inhaltstyps, das die Position des Gebäudes, des Aufzugs, des Feuerlöschers, ... enthält. Diese Daten kommen aus dem iCL Portal.
  2. die aktuelle Position des Geräts - der iCL Filler fragt das Betriebssystem nach der aktuellen GPS-Position, wenn er die Abfrage ausführt.

Aus beiden berechnet die App die Entfernung in Metern und verwendet sie wie jeden anderen Wert in der Abfrage: als Filter ("nicht weiter entfernt als 500 Meter") und/oder als Sortierkriterium ("das nächstgelegene zuerst").

Die Entfernung ist eine Luftlinie

Die Entfernung ist die direkte Entfernung ("Luftlinie") zwischen den beiden Koordinaten. Es handelt sich nicht um eine Routen- oder Gehstrecke - Straßen, Gebäude oder Stockwerke werden also nicht berücksichtigt.

iCL Portal: Die Daten vorbereiten​

Der Standortfilter funktioniert nur mit Elementen, deren Koordinaten bekannt sind. Genau hier beginnt daher jede standortbasierte Arbeitsmappe.

Die Koordinaten am Inhaltselement speichern​

Fügen Sie Ihrem Inhaltstyp ein Feld hinzu, das die Position des Elements enthält, und stellen Sie sicher, dass dieses Feld bei den Elementen im iCL Portal befüllt ist. Sie können die Werte wie alle anderen Daten von Inhaltselementen pflegen - indem Sie das Element im iCL Portal bearbeiten, indem Sie die Werte aus einer Excel-Arbeitsmappe importieren oder über die Inhaltselemente-API.

Die folgenden Wertformate werden verstanden:

FormatBeispiel
Breitengrad, Längengrad48.1995789, 16.3863483
Breitengrad, Längengrad mit Genauigkeit48.1995789, 16.3863483 (± 178m)
WKT-Punkt (Längengrad zuerst!)POINT (16.3863483 48.1995789)

Sowohl . als auch , werden als Dezimaltrennzeichen akzeptiert. Breiten- und Längengrad werden in Dezimalgrad (WGS 84) angegeben - also in genau dem Format, das Sie erhalten, wenn Sie eine Position aus Google Maps kopieren. Ein einfaches Textfeld genügt dafür: Entscheidend ist nur, dass der Wert eine der obigen Formen hat.

Die Position vor Ort erfassen

Wenn das Formular Ihres Inhaltstyps ein Geolocation-Feld verwendet, können die Prüfer die aktuelle Position eines Elements direkt im iCL Filler erfassen, während sie dieses Element anlegen oder bearbeiten. Die App schreibt den Wert dann inklusive Genauigkeit, wie in der zweiten Zeile der obigen Tabelle.

Elemente ohne Koordinaten sind nie "in der Nähe"

Ein Element, dessen Standortfeld leer ist oder nicht gelesen werden kann, wird als unendlich weit entfernt behandelt. Es erfüllt niemals einen Entfernungsfilter, und beim aufsteigenden Sortieren landet es ganz am Ende der Liste. Stellen Sie daher sicher, dass die Daten vollständig sind, bevor Sie einen Standortfilter ausrollen - andernfalls finden Ihre Prüfer diese Elemente schlicht nicht mehr.

Nur synchronisierte Elemente können gefunden werden​

Die Abfrage läuft auf dem Gerät, und zwar über jene Inhaltselemente, die auf das Gerät synchronisiert wurden. Das iCL Portal selbst wertet den Standortfilter nie aus. Ein Element, das nicht im Synchronisierungsumfang des Geräts enthalten ist, wird nicht gefunden - egal, wie nah der Prüfer davor steht.

Wenn Ihre Prüfer Elemente nicht sehen, die sie erwarten, prüfen Sie zuerst die Synchronisierungsregeln des Inhaltstyps.

iCL Designer: Die Abfrage definieren​

Der Standortfilter besteht aus zwei Blockly-Blöcken, die sich in der Kategorie queries der Toolbox befinden.

BlockFunktion
Behält nur jene Inhaltselemente, deren Entfernung zur aktuellen Position den Vergleich erfüllt. Verfügbare Operatoren: <, >, <=, >=.
Sortiert die Inhaltselemente nach ihrer Entfernung zur aktuellen Position. ascending stellt das nächstgelegene Element an den Anfang.

In beiden Blöcken listet das Auswahlfeld alle Felder des Inhaltstyps auf - wählen Sie jenes Feld, das die Koordinaten enthält (siehe oben). Der Wert des Filter-Blocks ist eine Anzahl von Metern; Sie können einen einfachen Zahlen-Block verwenden oder jeden anderen Block, der eine Zahl zurückgibt - zum Beispiel die Antwort eines Checklistenfeldes.

Sie können die Blöcke mit allen anderen Abfrage-Blöcken kombinieren. Eine typische Abfrage behält die Elemente innerhalb eines Radius und sortiert sie, sodass das nächstgelegene ganz oben steht:

Wo Sie die Blöcke verwenden können​

Die beiden Blöcke stehen in jeder skriptbaren Eigenschaft zur Verfügung, die eine Abfrage von Inhaltselementen erstellt:

EigenschaftWo Sie sie findenWas sie bewirkt
FilterInhaltstyp mit aktivierter Option Is inspectedSchränkt jene Elemente ein, aus denen der Prüfer beim Starten einer Inspektion wählen kann.
FilterFeld vom Typ InhaltselementSchränkt jene Elemente ein, aus denen der Prüfer beim Befüllen dieses Feldes wählen kann.
AbfrageFeld mit Has data-bound values, an Inhaltselemente gebundenSchränkt die verfügbaren Antworten dieses Feldes ein und sortiert sie.
AbfrageCheckliste / Kapitel / Überschrift mit Wiederholen für verwandte ElementeSchränkt die wiederholten Bereiche ein und sortiert sie.
Der Standortfilter setzt iCL Filler 3 voraus

iCL Filler 2 kann einen Standortfilter nicht auswerten. Solange in den Arbeitsmappen-Einstellungen die Filler-2-Kompatibilität aktiviert ist, meldet der iCL Designer jede Verwendung der beiden Blöcke als Überprüfungsfehler. Ein Doppelklick auf den Fehler bringt Sie zu jener Eigenschaft, die ihn verwendet.

Um die Funktion zu nutzen, deaktivieren Sie die Filler-2-Kompatibilität - die iWorkbook ist dann ausschließlich für iCL Filler 3 bestimmt.

iCL Filler: Was der Prüfer sieht​

Immer wenn eine Liste von Inhaltselementen für eine Abfrage geöffnet wird, die nach Entfernung filtert, ermittelt die App zuerst die aktuelle Position. Währenddessen zeigt die Liste "Retrieving location…" an.

Entfernung jedes Elements​

Jeder Eintrag der Liste zeigt unter seinem Titel an, wie weit er entfernt ist - zum Beispiel Distance - 250m. Entfernungen ab 1000 m werden in Kilometern mit einer Nachkommastelle angezeigt (Distance - 1.2km).

Keine Ergebnisse​

Wenn nichts nah genug ist, zeigt die Liste "No results found" zusammen mit dem Radius der Abfrage ("You must be within 500m"). So erkennt der Prüfer, dass die Liste nicht leer ist, weil es keine Daten gibt, sondern weil er zu weit entfernt ist.

Die Position kann nicht ermittelt werden​

Die Standortdienste können deaktiviert sein, die App hat möglicherweise nicht die nötige Berechtigung, oder das Gerät bekommt einfach keine Position. In diesem Fall zeigt die App keine leere Liste - das würde so aussehen, als gäbe es nichts in der Nähe. Stattdessen erscheint "Location unavailable" mit dem Hinweis, die Standortdienste zu aktivieren, sowie eine Schaltfläche Open settings, die den Prüfer direkt zur passenden Systemeinstellung führt.

Suche und Barcode-Scan bleiben bedienbar, können aber kein Ergebnis liefern, solange die Position unbekannt ist. Verwenden Sie die Aktualisieren-Aktion der Liste, sobald die Einstellung korrigiert wurde: Sie fragt die Berechtigung erneut an und lädt die Liste neu.

Die Berechtigung vor dem Außeneinsatz erteilen

Die App fragt die Standortberechtigung ab, sobald zum ersten Mal eine standortgefilterte Liste geöffnet wird. Stellen Sie sicher, dass Ihre Prüfer sie erteilen - idealerweise, solange sie noch eine gute Verbindung haben und nicht in Eile sind.

Bewegung bei geöffneter Liste​

Die App verfolgt die Position weiter, solange die Liste geöffnet ist. Wenn sich der Prüfer bewegt, erscheint eine Benachrichtigung: "Location Changed - Update search results with new location?" mit der Aktion Update Search. Die Liste wird bewusst nicht automatisch neu geladen, damit ein Eintrag nicht genau in dem Moment verschwindet, in dem der Prüfer ihn antippt.

Einen Standortfilter am Schreibtisch testen​

Zu jedem Inhaltselement hinzugehen, nur um eine Abfrage zu prüfen, ist nicht praktikabel - der iCL Filler kann daher so tun, als wäre er woanders.

Aktivieren Sie Entwicklermodus einschalten in den developer options ganz unten in den Einstellungen des iCL Filler. Neben der Barcode-Schaltfläche jeder Inhaltselement-Liste erscheint dann eine Pin-Schaltfläche. Sie öffnet ein kleines Eingabefeld, das ein Paar aus latitude, longitude entgegennimmt - genau das, was Sie erhalten, wenn Sie in Google Maps mit der rechten Maustaste auf einen Ort klicken und dessen Koordinaten kopieren.

Solange ein Wert eingetragen ist, verwendet die App ihn anstelle der echten GPS-Position: Die Entfernungen werden neu berechnet und die Liste bietet Update Search an, genau wie bei einer echten Bewegung. Während die Überschreibung aktiv ist, hört die App nicht mehr auf die Standortdienste des Geräts; leeren Sie das Feld, um die Kontrolle wieder an sie zurückzugeben.

Die Eingabe benötigt einen Dezimalpunkt

Breiten- und Längengrad werden durch ein Komma getrennt, daher muss der Dezimaltrenner ein Punkt sein (48.199822, 16.387398). Genau dieses Format kopiert Google Maps in die Zwischenablage.

Gut zu wissen​

  • Halten Sie den Inhaltstyp unter 10.000 Elementen. Ein Entfernungsvergleich hat kein SQL-Äquivalent, daher kann die Abfrage nicht über den Inhaltselement-Index der App beantwortet werden. Stattdessen lädt die App jedes nicht gelöschte Element des Inhaltstyps und wertet die Entfernung im Speicher aus. Sobald diese Kandidatenmenge die Beschränkung "Maximale Anzahl von Ergebnissen, die von einer Inhaltsabfrage zurückgegeben werden können" erreicht - standardmäßig 10.000 Elemente -, bleibt die Liste leer und meldet, dass die Abfrage zu viele Ergebnisse liefert. Zusätzliche Filter in der Abfrage helfen dagegen nicht, da sie erst nach dem Laden der Elemente angewendet werden; gezählt wird die Größe des gesamten Inhaltstyps. Nur ein engerer Synchronisierungsumfang senkt diese Zahl.
  • Wählen Sie einen großzügigen Radius. Die GPS-Genauigkeit schwankt stark: zwischen Gebäuden oder in Innenräumen kann eine Position leicht um mehrere Dutzend Meter abweichen. Ein zu kleiner Radius lässt Elemente genau dann verschwinden, wenn der Prüfer sie braucht.
  • Sortieren allein ist gutmütiger als Filtern. Wenn die Position nicht ermittelt werden kann, liefert eine Abfrage, die nur nach Entfernung sortiert, ihre Elemente trotzdem (in beliebiger Reihenfolge) - eine Abfrage, die nach Entfernung filtert, liefert hingegen nichts und zeigt den Bildschirm Location unavailable. Im Zweifel bringt bereits das Sortieren nach Entfernung dem Prüfer den größten Teil des Nutzens.