Delen via


Spatial - Get Geofence

Gebruik om de nabijheid van een coördinaat tot een geofence te krijgen.

De Get Geofence API is een HTTP-aanvraag GET die de nabijheid van een coördinaat met een geofence ophaalt die is geüpload naar het gegevensregister. U uploadt een geofence of set fences naar een Azure Storage-account en registreert deze vervolgens bij uw Azure Maps-account met behulp van het gegevensregister. Zie Gegevensregister maken voor meer informatie. Zie Geofencing GeoJSON-gegevens voor meer informatie over de geofence-gegevensindeling. Als u de nabijheid van een coördinaat wilt opvragen, geeft u de locatie op van het object dat u bijhoudt, evenals de id voor de omheining of set omheiningen. Het antwoord bevat informatie over de afstand tot de buitenrand van de geofence. Een negatieve waarde geeft aan dat de coördinaat zich binnen de omheining bevindt, terwijl een positieve waarde betekent dat deze zich buiten de omheining bevindt.

Deze API kan worden gebruikt voor verschillende scenario's, waaronder het bijhouden van activa, het beheren van het wagenpark of het instellen van waarschuwingen voor het verplaatsen van objecten.

De API ondersteunt integratie met Event Grid. De parameter isAsync wordt gebruikt om integratie met Event Grid in te schakelen (standaard uitgeschakeld). Als u deze API wilt testen, kunt u de voorbeeldgegevens van post-Geofence-API-voorbeelden (aanvraagbody) uploaden met behulp van de gegevensregisterservice en de uit de {udid} onderstaande voorbeeldaanvraag vervangen door de udid die wordt gebruikt om het gegevensregister te maken. Zie Gegevensregister maken voor meer informatie over de gegevensregisterservice.

Geofencing InnerError-code

In het antwoordcontract innererror voor geofencing is een object met servicespecifieke informatie over de fout. code is een eigenschap waarin innererror kan worden toegewezen aan een specifiek type geofencingfout. In de onderstaande tabel ziet u de codetoewijzing tussen alle bekende clientfouttypen aan de bijbehorende geofencingfout message.

innererror.code error.message
NullDeviceId Apparaat-id mag niet null zijn.
NullUdid Udid mag niet null zijn.
UdidWrongFormat Udid moet worden verkregen uit de API voor gebruikersgegevensopname.
InvalidUserTime Usertime is ongeldig.
InvalidSearchBuffer Searchbuffer is ongeldig.
InvalidSearchRange Het waardebereik van searchbuffer moet tussen 0 en 500 meter liggen.
InvalidLatLon Lat- en/of lon-parameters zijn ongeldig.
InvalidIsAsyncValue De parameter IsAsync is ongeldig.
InvalidModeValue De modusparameter is ongeldig.
Ongeldige Json Geofencinggegevens zijn geen geldig json-bestand.
NotSupportedGeoJson Geofencinggegevens kunnen niet worden gelezen als een functie of functieverzameling.
InvalidGeoJson Geofencinggegevens zijn ongeldig.
NoUserDataWithAccountOrSubscription Kan geen geofencinggegevens van gebruikers vinden met de opgegeven account-id en/of abonnements-id.
NoUserDataWithUdid Kan geen geofencinggegevens van gebruikers vinden met de opgegeven udid.
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}
GET https://{geography}.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId={deviceId}&udid={udid}&lat={lat}&lon={lon}&z={z}&userTime={userTime}&searchBuffer={searchBuffer}&isAsync={isAsync}&mode={mode}

URI-parameters

Name In Vereist Type Description
format
path True

JsonFormat

Gewenste indeling van het antwoord. Alleen json de indeling wordt ondersteund.

geography
path True

string

Locatie van het Azure Maps-account. Geldige waarden zijn us (VS - oost, VS - west-centraal, VS - west 2) en eu (Europa - noord, Europa - west). Deze parameter is vereist wanneer een udid wordt opgegeven in de aanvraag. Als het Azure Maps-account zich bijvoorbeeld in VS - oost bevindt, worden alleen aanvragen voor ons geografisch gebied geaccepteerd.

api-version
query True

string

Versienummer van Azure Maps-API.

deviceId
query True

string

Id van het apparaat

lat
query True

number

De breedtegraad van de locatie die wordt doorgegeven. Voorbeeld: 48.36.

lon
query True

number

De lengtegraad van de locatie die wordt doorgegeven. Voorbeeld: -124.63.

udid
query True

string

De unieke id die wordt gebruikt bij het maken van een gegevensregister om een geldig GeoJSON FeatureCollection-object te uploaden. Raadpleeg RFC 7946 voor meer informatie. Alle eigenschappen van de functie moeten bevatten geometryId, die wordt gebruikt voor het identificeren van de geometrie en hoofdlettergevoelig zijn. Zie Gegevensregister maken voor meer informatie over de gegevensregisterservice.

isAsync
query

boolean

Indien waar, gebruikt de aanvraag een asynchroon gebeurtenismechanisme; indien onwaar, wordt de aanvraag gesynchroniseerd en wordt er geen gebeurtenis geactiveerd. De standaardwaarde is false.

mode
query

GeofenceMode

Modus van het asynchrone geofencing-gebeurtenismechanisme.

searchBuffer
query

number

De straal van de buffer rond de geofence in meters die bepaalt hoe ver er binnen en buiten de rand van de omheining moet worden gezocht naar de coördinaat die is opgegeven bij het berekenen van het resultaat. De minimumwaarde is 0 en het maximum is 500. De standaardwaarde is 50.

userTime
query

string

date-time

De aanvraagtijd van de gebruiker. Als deze niet wordt weergegeven in de aanvraag, is de standaardwaarde DateTime.Now.

z
query

number

Het zeeniveau in meter van de locatie die wordt doorgegeven. Als deze parameter wordt weergegeven, wordt 2D-extrusie gebruikt. Voorbeeld: 200.

Aanvraagkoptekst

Name Vereist Type Description
x-ms-client-id

string

Hiermee geeft u op welk account is bedoeld voor gebruik in combinatie met het Microsoft Entra ID-beveiligingsmodel. Het vertegenwoordigt een unieke id voor het Azure Maps-account en kan worden opgehaald uit de Azure Maps-beheervlak Account-API. Als u Microsoft Entra ID-beveiliging in Azure Maps wilt gebruiken, raadpleegt u de volgende artikelen voor hulp.

Antwoorden

Name Type Description
200 OK

Geofence

OK De waarde van de X-Correlation-id-header is aanwezig in het antwoord van een asynchrone aanroep en de Event Grid-gebeurtenisgegevens. Het helpt het antwoord van de asynchrone oproep te correleren met de bijbehorende Event Grid-gebeurtenis.

Kopteksten

X-Correlation-id: string

Other Status Codes

ErrorResponse

Er is een onverwachte fout opgetreden.

Beveiliging

AADToken

Dit zijn de Microsoft Entra OAuth 2.0-stromen . Wanneer het wordt gekoppeld aan op rollen gebaseerd toegangsbeheer van Azure , kan het worden gebruikt om de toegang tot Azure Maps REST API's te beheren. Op rollen gebaseerd toegangsbeheer van Azure wordt gebruikt om toegang tot een of meer Azure Maps-resourceaccounts of subresources aan te wijzen. Elke gebruiker, groep of service-principal kan toegang krijgen via een ingebouwde rol of een aangepaste rol die bestaat uit een of meer machtigingen voor Azure Maps REST API's.

Als u scenario's wilt implementeren, raden we u aan om verificatieconcepten te bekijken. Samengevat biedt deze beveiligingsdefinitie een oplossing voor het modelleren van toepassingen via objecten die toegangsbeheer kunnen hebben voor specifieke API's en bereiken.

Notities

  • Voor deze beveiligingsdefinitie moet de x-ms-client-id header worden gebruikt om aan te geven tot welke Azure Maps-resource de toepassing toegang aanvraagt. Dit kan worden verkregen via de Beheer-API van Maps.

De Authorization URL is specifiek voor het azure-exemplaar van de openbare cloud. Onafhankelijke clouds hebben unieke autorisatie-URL's en Microsoft Entra ID-configuraties. * Op rollen gebaseerd toegangsbeheer van Azure wordt geconfigureerd vanuit het Azure-beheervlak via Azure Portal, PowerShell, CLI, Azure SDK's of REST API's. * Gebruik van de Azure Maps Web SDK maakt configuratie van een toepassing mogelijk voor meerdere use cases.

Type: oauth2
Stroom: implicit
Autorisatie-URL: https://login.microsoftonline.com/common/oauth2/authorize

Bereiken

Name Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Dit is een gedeelde sleutel die wordt ingericht bij het maken van een Azure Maps-resource via het Azure-beheervlak via Azure Portal, PowerShell, CLI, Azure SDK's of REST API's.

Met deze sleutel wordt elke toepassing gemachtigd voor toegang tot alle REST API's. Met andere woorden, deze kunnen momenteel worden behandeld als hoofdsleutels voor het account waarvoor ze zijn uitgegeven.

Voor openbaar beschikbare toepassingen wordt aanbevolen om server-naar-servertoegang van Azure Maps REST API's te gebruiken, waar deze sleutel veilig kan worden opgeslagen.

Type: apiKey
In: header

SAS Token

Dit is een shared access signature-token dat is gemaakt op basis van de SAS-bewerking List op de Azure Maps-resource via het Azure-beheervlak via Azure Portal, PowerShell, CLI, Azure SDK's of REST API's.

Met dit token is elke toepassing gemachtigd om toegang te krijgen met op rollen gebaseerd toegangsbeheer van Azure en fijnmazige controle over het verloop, de snelheid en de gebruiksregio(s) voor het specifieke token. Met andere woorden, het SAS-token kan worden gebruikt om toepassingen in staat te stellen toegang op een veiligere manier te beheren dan de gedeelde sleutel.

Voor openbaar beschikbaar gemaakte toepassingen wordt aanbevolen om een specifieke lijst met toegestane oorsprongen te configureren op de resource Van het account toewijzen om misbruik van het genereren te beperken en het SAS-token regelmatig te vernieuwen.

Type: apiKey
In: header

Voorbeelden

GetGeofence

Voorbeeldaanvraag

GET https://us.atlas.microsoft.com/spatial/geofence/json?api-version=2022-08-01&deviceId=unique_device_name_under_account&udid=f6495f62-94f8-0ec2-c252-45626f82fcb2&lat=48.36&lon=-124.63&userTime=2022-08-21T17:32:28Z&searchBuffer=50&isAsync=True&mode=EnterAndExit

Voorbeeldrespons

{
  "geometries": [
    {
      "deviceId": "unique_device_name_under_account",
      "udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
      "geometryId": "2",
      "distance": 999,
      "nearestLat": 47.621954,
      "nearestLon": -122.131841
    },
    {
      "deviceId": "unique_device_name_under_account",
      "udId": "f6495f62-94f8-0ec2-c252-45626f82fcb2",
      "geometryId": "1",
      "distance": -999,
      "nearestLat": 47.609833,
      "nearestLon": -122.148274
    }
  ],
  "expiredGeofenceGeometryId": [
    "5"
  ],
  "invalidPeriodGeofenceGeometryId": [
    "3",
    "4"
  ],
  "isEventPublished": true
}

Definities

Name Description
ErrorAdditionalInfo

Aanvullende informatie over de resourcebeheerfout.

ErrorDetail

De foutdetails.

ErrorResponse

Foutreactie

Geofence

Dit object wordt geretourneerd door een geofence-nabijheidsaanroep.

GeofenceGeometry

De geofencinggeometrie.

GeofenceMode

Modus van het geofencing asynchrone gebeurtenismechanisme.

JsonFormat

Gewenste indeling van het antwoord. Alleen json de indeling wordt ondersteund.

ErrorAdditionalInfo

Aanvullende informatie over de resourcebeheerfout.

Name Type Description
info

object

De aanvullende informatie.

type

string

Het type aanvullende informatie.

ErrorDetail

De foutdetails.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

De fout aanvullende informatie.

code

string

De foutcode.

details

ErrorDetail[]

De foutdetails.

message

string

Het foutbericht.

target

string

Het foutdoel.

ErrorResponse

Foutreactie

Name Type Description
error

ErrorDetail

Het foutobject.

Geofence

Dit object wordt geretourneerd door een geofence-nabijheidsaanroep.

Name Type Description
expiredGeofenceGeometryId

string[]

Een lijst met de geometrie-id van de geofence die is verlopen ten opzichte van de gebruikerstijd in de aanvraag.

geometries

GeofenceGeometry[]

Een lijst met de omheiningsgeometrieën die de positie van de coördinaat bevatten of de searchBuffer rond de positie overlappen.

invalidPeriodGeofenceGeometryId

string[]

Een lijst met de geometrie-id van de geofence die zich in een ongeldige periode bevindt ten opzichte van de gebruikerstijd in de aanvraag.

isEventPublished

boolean

Is waar als ten minste één gebeurtenis wordt gepubliceerd naar de Azure Maps-gebeurtenisabonnee, onwaar als er geen gebeurtenis wordt gepubliceerd naar de Azure Maps-gebeurtenisabonnee. Dit wordt alleen weergegeven als antwoord wanneer de queryparameter 'isAsync' is ingesteld op true.

GeofenceGeometry

De geofencinggeometrie.

Name Type Description
deviceId

string

Id van het apparaat.

distance

number

Afstand van de coördinaat tot de dichtstbijzijnde rand van de geofence (in meters behalve wanneer speciale waarden -999/999 worden gebruikt). Positief betekent dat de coördinaat zich buiten de geofence bevindt. Als de coördinaat zich buiten de geofence bevindt, maar meer dan de waarde van searchBuffer verwijderd is van de dichtstbijzijnde geofence-rand, is de waarde 999. Negatief betekent dat de coördinaat zich in de geofence bevindt. Als de coördinaat zich binnen de veelhoek bevindt, maar meer dan de waarde van searchBuffer buiten de dichtstbijzijnde geofencingrand ligt, is de waarde -999. Een waarde van 999 betekent dat er een groot vertrouwen is dat de coördinaat zich ver buiten de geofence bevindt. Een waarde van -999 betekent dat er veel vertrouwen is dat de coördinaat goed binnen de geofence ligt.

geometryId

string

De unieke id identificeert een geometrie.

nearestLat

number

Breedtegraad van het dichtstbijzijnde punt van de geometrie.

nearestLon

number

Lengtegraad van het dichtstbijzijnde punt van de geometrie.

nearestZ

number

Zeeniveau in meter van het dichtstbijzijnde punt op de 2D-extrusiegeometrie. Dit wordt alleen weergegeven als antwoord wanneer er een waarde wordt opgegeven voor 'zInMeter' in de aanvraag.

udId

string

De unieke id die wordt gebruikt bij het maken van een gegevensregister om een geldig GeoJSON FeatureCollection-object te uploaden. Raadpleeg RFC 7946 voor meer informatie. Alle eigenschappen van de functie moeten bevatten geometryId, die wordt gebruikt voor het identificeren van de geometrie en is hoofdlettergevoelig. Zie Gegevensregister maken voor meer informatie over de gegevensregisterservice.

GeofenceMode

Modus van het geofencing asynchrone gebeurtenismechanisme.

Name Type Description
All

string

Publiceer alle queryresultaten naar het gebeurtenisabonnement van het Azure Maps-account.

EnterAndExit

string

Publiceer alleen resultaten wanneer de locatie van de gebruiker wordt beschouwd als het overschrijden van geofencing boarder.

JsonFormat

Gewenste indeling van het antwoord. Alleen json de indeling wordt ondersteund.

Name Type Description
json

string

De JavaScript Object Notation Data Interchange-indeling