Freigeben über


geo_point_in_circle()

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Berechnet, ob sich die räumlichen Koordinaten innerhalb eines Kreises auf der Erde befinden.

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
p_longitude real ✔️ Geospatialkoordinaten-Längengradwert in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-180, +180].
p_latitude real ✔️ Geospatialkoordinaten-Breitengradwert in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-90, +90].
pc_longitude real ✔️ Geospatialkoordinaten-Längengradwert im Kreis in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-180, +180].
pc_latitude real ✔️ Kreis-Mittel-Geospatialkoordinate Breitenwert in Grad. Der gültige Wert ist eine reelle Zahl und im Bereich [-90, +90].
c_radius real ✔️ Kreisradius in Metern. Der gültige Wert muss positiv sein.

Gibt zurück

Gibt an, ob sich die Geospatialkoordinaten innerhalb eines Kreises befinden. Wenn die Koordinaten oder der Kreis ungültig sind, erzeugt die Abfrage ein NULL-Ergebnis.

Hinweis

  • Die Geospatialkoordinaten werden durch das WGS-84-Koordinatenverweissystem interpretiert.
  • Das geodetische Datum , das zum Messen der Entfernung auf der Erde verwendet wird, ist eine Kugel.
  • Ein Kreis ist eine kugelförmige Kappe auf der Erde. Der Radius der Kappe wird entlang der Oberfläche der Kugel gemessen.

Beispiele

Im folgenden Beispiel werden alle Stellen in dem durch den folgenden Kreis definierten Bereich gefunden: Radius von 18 km, Mitte bei [-122.317404, 47.609119] Koordinaten.

Screenshot einer Karte mit Orten innerhalb von 18 km von 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

Output

Restaurant
Seattle
Kirkland
Redmond

Im folgenden Beispiel werden Sturmereignisse in Orlando gefunden. Die Ereignisse werden nach 100 km in Orlando-Koordinaten gefiltert und nach Ereignistyp und Hash aggregiert.

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

Output

Screenshot von Sturmereignissen in Orlando, die mit Kreisdiagrammpunkten auf einer Karte gerendert werden.

Das folgende Beispiel zeigt die Abholung von Taxiannahmen in New York innerhalb von 10 Metern von einem bestimmten Standort. Relevante Pickups werden nach Hash aggregiert.

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)

Output

Screenshot der gerenderten Karte mit abholungen in der Nähe von New York City, wie in der Abfrage definiert.

Im folgenden Beispiel wird true zurückgegeben.

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

Output

in_circle
true

Im folgenden Beispiel wird false zurückgegeben.

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

Output

in_circle
false

Im folgenden Beispiel wird ein NULL-Ergebnis aufgrund der ungültigen Koordinateneingabe zurückgegeben.

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

Output

in_circle

Im folgenden Beispiel wird ein NULL-Ergebnis aufgrund der ungültigen Kreisradiuseingabe zurückgegeben.

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

Output

in_circle