Partager via


geo_point_in_circle()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcule si les coordonnées géospatiales se trouvent à l’intérieur d’un cercle sur la Terre.

Syntaxe

geo_point_in_circle(, p_longitude p_latitude, pc_longitude, pc_latitude c_radius, )

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
p_longitude real ✔️ Valeur de longitude des coordonnées géospatiales en degrés. La valeur valide est un nombre réel et dans la plage [-180, +180].
p_latitude real ✔️ Valeur de latitude de coordonnées géospatiales en degrés. La valeur valide est un nombre réel et dans la plage [-90, +90].
pc_longitude real ✔️ Valeur de longitude de coordonnées géospatiales du centre cercle en degrés. La valeur valide est un nombre réel et dans la plage [-180, +180].
pc_latitude real ✔️ valeur de latitude de coordonnées géospatiales du centre cercle en degrés. La valeur valide est un nombre réel et dans la plage [-90, +90].
c_radius real ✔️ Rayon de cercle en mètres. La valeur valide doit être positive.

Retours

Indique si les coordonnées géospatiales se trouvent à l’intérieur d’un cercle. Si les coordonnées ou le cercle ne sont pas valides, la requête produit un résultat null.

Remarque

  • Les coordonnées géospatiales sont interprétées comme représentées par le système de référence de coordonnées WGS-84 .
  • La référence géodésique utilisée pour mesurer la distance sur terre est une sphère.
  • Un cercle est un capuchon sphérique sur Terre. Le rayon du capuchon est mesuré le long de la surface de la sphère.

Exemples

L’exemple suivant recherche tous les endroits de la zone définie par le cercle suivant : Rayon de 18 km, centre à [-122.317404, 47.609119] coordonnées.

Capture d’écran d’une carte avec des emplacements situés à moins de 18 km de Seattle.

datatable(longitude:real, latitude:real, place:string)
[
    real(-122.317404), 47.609119, 'Seattle',                   // In circle 
    real(-123.497688), 47.458098, 'Olympic National Forest',   // In exterior of circle  
    real(-122.201741), 47.677084, 'Kirkland',                  // In circle
    real(-122.443663), 47.247092, 'Tacoma',                    // In exterior of circle
    real(-122.121975), 47.671345, 'Redmond',                   // In circle
]
| where geo_point_in_circle(longitude, latitude, -122.317404, 47.609119, 18000)
| project place

Sortie

adresse
Seattle
Kirkland
Redmond

L’exemple suivant recherche les événements storm à Orlando. Les événements sont filtrés de 100 km dans les coordonnées d’Orlando, et agrégés par type d’événement et hachage.

StormEvents
| project BeginLon, BeginLat, EventType
| where geo_point_in_circle(BeginLon, BeginLat, real(-81.3891), 28.5346, 1000 * 100)
| summarize count() by EventType, hash = geo_point_to_s2cell(BeginLon, BeginLat)
| project geo_s2cell_to_central_point(hash), EventType, count_
| render piechart with (kind=map) // map pie rendering available in Kusto Explorer desktop

Sortie

Capture d’écran des événements storm à Orlando rendus avec des points de graphique en secteurs sur une carte.

L’exemple suivant montre les micros de taxi de New York dans les 10 mètres d’un emplacement particulier. Les enlèvements pertinents sont agrégés par hachage.

nyc_taxi
| project pickup_longitude, pickup_latitude
| where geo_point_in_circle( pickup_longitude, pickup_latitude, real(-73.9928), 40.7429, 10)
| summarize by hash = geo_point_to_s2cell(pickup_longitude, pickup_latitude, 22)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind = map)

Sortie

Capture d’écran de la carte rendue montrant les enlèvements de taxi de New York à proximité, comme défini dans la requête.

L’exemple suivant renvoie true.

print in_circle = geo_point_in_circle(-122.143564, 47.535677, -122.100896, 47.527351, 3500)

Sortie

in_circle
true

L’exemple suivant renvoie false.

print in_circle = geo_point_in_circle(-122.137575, 47.630683, -122.100896, 47.527351, 3500)

Sortie

in_circle
false

L’exemple suivant retourne un résultat Null en raison de l’entrée de coordonnées non valide.

print in_circle = geo_point_in_circle(200, 1, 1, 1, 1)

Sortie

in_circle

L’exemple suivant retourne un résultat Null en raison de l’entrée de rayon du cercle non valide.

print in_circle = geo_point_in_circle(1, 1, 1, 1, -1)

Sortie

in_circle