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_latitudec_radius)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
p_longitude real ✔️ Geodatenkoordinaten-Längengrad in Grad. Gültiger Wert ist eine reelle Zahl und im Bereich [-180, +180].
p_latitude real ✔️ Geodatenkoordinatengrad in Grad. Gültiger Wert ist eine reelle Zahl und im Bereich [-90, +90].
pc_longitude real ✔️ Kreiszentrierter georäumliche Koordinatengrad in Grad. Gültiger Wert ist eine reelle Zahl und im Bereich [-180, +180].
pc_latitude real ✔️ Kreismitte georäumliche Koordinatenbreitenwert in Grad. Gültiger 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 Geokoordinaten innerhalb eines Kreises befinden. Wenn die Koordinaten oder der Kreis ungültig sind, erzeugt die Abfrage ein NULL-Ergebnis.

Hinweis

  • Die georäumlichen Koordinaten werden so interpretiert, wie sie durch das Koordinatenreferenzsystem WGS-84 dargestellt werden.
  • Das geodätische 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 Orte 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 im Umkreis 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

Ausgabe

Restaurant
Seattle
Kirkland
Redmond

Im folgenden Beispiel werden Sturmereignisse in Orlando gefunden. Die Ereignisse werden nach 100 km innerhalb von 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

Ausgabe

Screenshot: Sturmereignisse in Orlando mit Kreisdiagrammpunkten auf einer Karte gerendert

Das folgende Beispiel zeigt New York City Taxi Pickups innerhalb von 10 Metern von einem bestimmten Standort entfernt. 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)

Ausgabe

Screenshot der gerenderten Karte mit Taxiabholungen in der Nähe von New York, 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)

Ausgabe

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)

Ausgabe

in_circle
false

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

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

Ausgabe

in_circle

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

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

Ausgabe

in_circle