Condividi tramite


Geofencing dei dati GeoJSON

L'API MAPPE DI AZURE GET Geofence e POST Geofence consente di recuperare la prossimità di una coordinata relativa a un geofence o a un set di recinzioni fornito. Questo articolo illustra come preparare i dati del recinto virtuale che possono essere usati nelle API delle Mappe di Azure GET e POST.

I dati per geofence o set di geofences, rappresentati dal Feature formato Object e FeatureCollection Object GeoJSON , sono definiti in rfc7946. Inoltre:

  • Il tipo di oggetto GeoJSON può essere un oggetto Feature o un oggetto FeatureCollection.
  • Il tipo di oggetto Geometry può essere un Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, e GeometryCollection.
  • Tutte le proprietà della funzionalità devono contenere un geometryId, che viene usato per l'identificazione del recinto virtuale.
  • La funzionalità con Point, MultiPoint, LineString, MultiLineString deve contenere radius nelle proprietà. Il valore radius viene misurato in metri, il valore radius è compreso tra 1 e 10000.
  • Funzionalità con polygon e multipolygon tipo geometry non dispone di una proprietà radius.
  • validityTime è una proprietà facoltativa che consente all'utente di impostare un'ora di scadenza e la validità del periodo di tempo per i dati del recinto virtuale. Se non specificata, i dati non scadano mai ed sono sempre validi.
  • expiredTime è la data e l'ora di scadenza dei dati di geofencing. Se il valore di userTime nella richiesta è successivo a questo valore, i dati geofence corrispondenti vengono considerati dati scaduti e non vengono sottoposti a query. Al quale, il geometryId di questi dati geofence viene incluso nella expiredGeofenceGeometryId matrice all'interno della risposta geofence.
  • validityPeriod è un elenco del periodo di validità del recinto virtuale. Se il valore di nella richiesta non rientra nel periodo di userTime validità, i dati geofence corrispondenti vengono considerati non validi e non vengono sottoposti a query. Il geometryId dei dati di questo recinto virtuale è incluso nella matrice invalidPeriodGeofenceGeometryId all'interno della risposta del recinto virtuale. Nella tabella seguente vengono illustrate le proprietà dell'elemento validityPeriod.
Nome Tipo Obbligatoria Descrizione
startTime Datetime true Data e ora di inizio del periodo di validità.
endTime Datetime true Data e ora di fine del periodo di validità.
recurrenceType string false Il tipo di ricorrenza del periodo. Il valore può essere Daily, Weekly, Monthly o Yearly. Il valore predefinito è Daily.
businessDayOnly Boolean false Indica se i dati sono validi solo durante i giorni lavorativi. Il valore predefinito è false.
  • Tutti i valori di coordinata vengono rappresentati come [longitudine, latitudine] definiti in WGS84.
  • Per ciascuna funzionalità, che contiene MultiPoint, MultiLineString, MultiPolygon o GeometryCollection, le proprietà vengono applicate a tutti gli elementi. ad esempio: tutti i punti in MultiPoint uso lo stesso raggio per formare un geofence a più cerchi.
  • In uno scenario punto-cerchio, una geometria circolare può essere rappresentata usando un oggetto di geometria Point con proprietà elaborate nell'Estensione delle geometrie GeoJSON.

Di seguito è riportato un esempio del corpo della richiesta per un recinto virtuale rappresentato come una geometria circolare del recinto virtuale in GeoJSON usando un punto centrale e un raggio. Il periodo valido dei dati di geofence inizia dalle 2018-10-229:00 alle 5:00, ripetute ogni giorno, ad eccezione del fine settimana. expiredTime indica che i dati di geofence vengono considerati scaduti, se userTime nella richiesta è successiva a 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
                }
            ]
        }
    }
}