Udostępnij za pośrednictwem


Geofencing Dane GeoJSON

Interfejs API geofencingu GET w usłudze Azure Maps i interfejsu API geofencingu POST umożliwia pobieranie odległości współrzędnych względem podanego ogrodzenia lub zestawu ogrodzeń. W tym artykule szczegółowo opisano sposób przygotowywania danych geofencingu, które mogą być używane w interfejsie API GET i POST usługi Azure Maps.

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 niego:

  • 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 jest używany do identyfikowania geofencingu.
  • Funkcja z elementem Point, , MultiLineString MultiPointLineStringmusi zawierać radius właściwości . radius wartość jest mierzona w metrach, radius a wartości wahają się od 1 do 10000.
  • Funkcja z typem polygon geometrii i multipolygon nie ma właściwości promienia.
  • validityTime to opcjonalna właściwość, która umożliwia użytkownikowi ustawienie wygasłego czasu 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, 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ą wykonywane zapytania. GeometryId tych danych geofencingu jest uwzględniony w invalidPeriodGeofenceGeometryId tablicy w odpowiedzi geofencingu. W poniższej tabeli przedstawiono właściwości elementu validityPeriod.
Nazwisko Type Wymagania Opis
startTime Datetime prawda Data rozpoczęcia okresu ważności.
endTime Datetime prawda Data zakończenia okresu ważności.
recurrenceType string fałsz Typ cyklu okresu. Wartość może mieć Dailywartość , , MonthlyWeeklylub Yearly. Wartość domyślna to Daily.
businessDayOnly Wartość logiczna 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 .WGS84
  • Dla każdej funkcji, która zawiera MultiPoint, MultiLineString, MultiPolygon lub GeometryCollection, właściwości są stosowane do wszystkich elementów. na przykład: wszystkie punkty, w MultiPoint których znajduje się ten sam promień, tworzą wiele okręgów geofencingu.
  • W scenariuszu z okręgiem punktowym geometria okręgu może być reprezentowana przy użyciu Point obiektu geometrii z właściwościami opracowanymi w temacie 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 5PM, 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
                }
            ]
        }
    }
}