Geofencing Dane GeoJSON

Interfejs API geofencingu GET Azure Maps i POST Geofence API umożliwia pobieranie zbliżenia współrzędnych względem podanego ogrodzenia lub zestawu ogrodzeń. W tym artykule szczegółowo przedstawiono sposób przygotowywania danych geofencingu, które mogą być używane w Azure Maps GET i POST API.

Dane dotyczące geofencingu lub zestawu geofencingów reprezentowanych przez Feature obiekt i FeatureCollection obiekt w GeoJSON formacie są definiowane w dokumencie rfc7946. Oprócz tego:

  • Typ obiektu GeoJSON może być obiektem Feature lub obiektem FeatureCollection .
  • Typ obiektu Geometry może być Pointtypu , , MultiPoint, LineStringMultiLineString, Polygon, MultiPolygon, i GeometryCollection.
  • Wszystkie właściwości funkcji powinny zawierać geometryIdelement , który służy do identyfikowania geofencingu.
  • Funkcja z elementami Point, MultiPoint, LineStringMultiLineString musi zawierać radius właściwości . radius wartość jest mierzona w metrach, radius a wartość waha się od 1 do 10000.
  • Funkcja z typem polygon geometrii i multipolygon nie ma właściwości promienia.
  • validityTime jest opcjonalną właściwością, która umożliwia użytkownikowi ustawienie czasu wygaśnięcia i okresu ważności danych geofencingu. Jeśli nie zostanie określony, dane nigdy nie wygasają i są zawsze prawidłowe.
  • To expiredTime data i godzina wygaśnięcia danych geofencingu. Jeśli wartość userTime w żądaniu jest późniejsza niż ta wartość, odpowiednie dane geofencingu są traktowane jako wygasłe dane i nie są odpytywane. Na tym podstawie geometryId tych danych geofencingu jest uwzględniony w expiredGeofenceGeometryId tablicy w odpowiedzi geofencingu.
  • Jest validityPeriod to lista okresu ważności geofencingu. Jeśli wartość userTime w żądaniu wykracza poza okres ważności, odpowiednie dane geofencingu są uznawane za nieprawidłowe i nie są odpytywane. GeometryId tych danych geofencingu jest zawarty w invalidPeriodGeofenceGeometryId tablicy w odpowiedzi geofencingu. W poniższej tabeli przedstawiono właściwości elementu validityPeriod.
Nazwa Typ Wymagane Opis
startTime Datetime (data/godzina) true Data rozpoczęcia okresu ważności.
endTime Datetime (data/godzina) true Data zakończenia okresu ważności.
recurrenceType ciąg fałsz Typ cyklu okresu. Wartość może mieć Dailywartość , Weekly, Monthlylub Yearly. Wartość domyślna to Daily.
businessDayOnly Boolean fałsz Określ, czy dane są prawidłowe tylko w dniach roboczych. Wartość domyślna to false.
  • Wszystkie wartości współrzędnych są reprezentowane jako [długość geograficzna, szerokość geograficzna] zdefiniowana w pliku WGS84.
  • Dla każdej funkcji, która zawiera MultiPointwłaściwości , MultiLineString, MultiPolygon lub GeometryCollection, są stosowane do wszystkich elementów. na przykład: wszystkie punkty w MultiPoint obiekcie używają tego samego promienia do utworzenia geofencingu z wieloma okręgami.
  • W scenariuszu z okręgiem punktowym geometria okręgu może być reprezentowana przy użyciu obiektu geometrycznego Point z właściwościami opracowanymi w artykule Rozszerzanie geometrii GeoJSON.

Poniżej znajduje się przykładowa treść żądania dla geofencingu reprezentowanego jako geometria geofencingu okręgu przy GeoJSON użyciu punktu środkowego i promienia. Prawidłowy okres danych geofencingu rozpoczyna się od 2018-10-22, od 9:00 do 17:00, powtarzany codziennie z wyjątkiem weekendu. expiredTime wskazuje, że te dane geofencingu są uznawane za wygasłe, jeśli userTime w żądaniu jest późniejsza niż 2019-01-01.

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-122.126986, 47.639754]
    },
    "properties": {
        "geometryId" : "1",
        "subType": "Circle",
        "radius": 500,
        "validityTime": 
        {
            "expiredTime": "2019-01-01T00:00:00",
            "validityPeriod": [
                {
                    "startTime": "2018-10-22T09:00:00",
                    "endTime": "2018-10-22T17:00:00",
                    "recurrenceType": "Daily",
                    "recurrenceFrequency": 1,
                    "businessDayOnly": true
                }
            ]
        }
    }
}