geo_point_in_circle()

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)

Argumente

  • p_longitude: Geospatialkoordinatengradwert in Grad. Gültiger Wert ist eine echte Zahl und im Bereich [-180, +180].
  • p_latitude: Geospatialkoordinatengradwert in Grad. Gültiger Wert ist eine echte Zahl und im Bereich [-90, +90].
  • pc_longitude: Kreiszentrierter Geospatialkoordinatengradwert in Grad. Gültiger Wert ist eine echte Zahl und im Bereich [-180, +180].
  • pc_latitude: Kreiszentrum Geospatialkoordinatengradwert in Grad. Gültiger Wert ist eine echte Zahl und im Bereich [-90, +90].
  • c_radius: Kreisradius in Metern. Gültiger 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 ist, erzeugt die Abfrage ein Nullergebnis.

Hinweis

  • Die Geospatialkoordinaten werden durch das WGS-84-Koordinatenreferenzsystem interpretiert.
  • Das geodetische Datum , das zum Messen des Abstands auf der Erde verwendet wird, ist eine Sphäre.
  • Ein Kreis ist eine sphärische Kappe auf der Erde. Der Radius der Kappe wird entlang der Oberfläche der Sphäre gemessen.

Beispiele

Die folgende Abfrage findet alle Orte im Bereich, der durch den folgenden Kreis definiert ist: Radius von 18 km, zentriert bei [-122.317404, 47.609119] Koordinaten.

Places near 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
Restaurant
Seattle
Kirkland
Redmond

Sturmereignisse in Orlando. Die Ereignisse werden nach 100 km innerhalb von Orlando-Koordinaten gefiltert und nach Ereignistyp und Hash aggregiert.

Storm events in Orlando.

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

Das folgende Beispiel zeigt NY Taxi-Abholungen innerhalb von 10 Metern eines bestimmten Standorts. Relevante Abholungen werden durch Hash aggregiert.

NY Taxi nearby Pickups.

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)

Im folgenden Beispiel wird true zurückgegeben.

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

Im folgenden Beispiel wird false zurückgegeben.

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

Im folgenden Beispiel wird ein Nullergebnis aufgrund der ungültigen Koordinateneingabe zurückgegeben.

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

Im folgenden Beispiel wird ein Nullergebnis aufgrund der ungültigen Kreisradiuseingabe zurückgegeben.

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