geo_polygon_centroid()
Berechnet den Schwerpunkt eines Polygons oder eines Multipolygons auf der Erde.
Syntax
geo_polygon_centroid(
Polygon)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
Polygon | dynamic |
✔️ | Polygon oder Multipolygon im GeoJSON-Format. |
Gibt zurück
Die Schwerpunktkoordinatenwerte im GeoJSON-Format und eines dynamischen Datentyps. Wenn Polygon oder Multipolygon ungültig sind, erzeugt die Abfrage ein NULL-Ergebnis.
Hinweis
- Die Geokoordinaten werden durch das Koordinatenreferenzsystem WGS-84 dargestellt interpretiert.
- Das geodätische Datum, das für Messungen auf der Erde verwendet wird, ist eine Kugel. Polygonränder sind geodätische Ränder auf der Kugel.
- Wenn Eingabepolygonränder gerade kartesische Linien sind, sollten Sie geo_polygon_densify() verwenden, um planare Kanten in Geodätik zu konvertieren.
- Wenn die Eingabe ein Multipolygon ist und mehr als ein Polygon enthält, ist das Ergebnis der Schwerpunkt von Polygonen Union.
Polygondefinition und Einschränkungen
dynamic({"type": "Polygon","coordinates": [ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N ]})
dynamic({"type": "MultiPolygon","coordinates": [[ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N], ..., [LinearRingShell, LinearRingHole_1, ..., LinearRingHole_M]]})
- LinearRingShell ist erforderlich und definiert als sortiertes
counterclockwise
Array von Koordinaten [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]. Es kann nur eine Shell vorhanden sein. - LinearRingHole ist optional und als
clockwise
geordnetes Array von Koordinaten [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]definiert. Es kann eine beliebige Anzahl von Innenringen und Löchern geben. - LinearRing-Scheitelpunkte müssen mit mindestens drei Koordinaten getrennt sein. Die erste Koordinate muss gleich der letzten sein. Mindestens vier Einträge sind erforderlich.
- Koordinaten [Längengrad, Breitengrad] müssen gültig sein. Längengrad muss eine reelle Zahl im Bereich [-180, +180] und Breitengrad eine reelle Zahl im Bereich [-90, +90] sein.
- LinearRingShell umfasst höchstens die Hälfte der Kugel. LinearRing unterteilt die Kugel in zwei Regionen und wählt die kleinere der beiden Regionen aus.
- Die LinearRing-Kantenlänge muss kleiner als 180 Grad sein. Der kürzeste Rand zwischen den beiden Scheitelpunkten wird ausgewählt.
- LinearRings darf sich nicht kreuzen und keine Kanten gemeinsam nutzen. LinearRings kann Scheitelpunkte gemeinsam nutzen.
Beispiele
Im folgenden Beispiel wird der Central Park-Schwerpunkt in New York City berechnet.
let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print centroid = geo_polygon_centroid(central_park)
Ausgabe
Schwerpunkt |
---|
{"type": "Point", "coordinates": [-73.96573568907618, 40.782550538057812]} |
Im folgenden Beispiel wird der Längengrad des Central Park-Schwerpunkts berechnet.
let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print
centroid = geo_polygon_centroid(central_park)
| project lng = centroid.coordinates[0]
Ausgabe
Lng |
---|
-73.9657356899076 |
Im folgenden Beispiel wird die Vereinigung von Polygonen in Multipolygon durchgeführt und der Schwerpunkt des einheitlichen Polygons berechnet.
let polygons = dynamic({"type":"MultiPolygon","coordinates":[[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]],[[[-73.94262313842773,40.775991804565585],[-73.98107528686523,40.791849155467695],[-73.99600982666016,40.77092185281977],[-73.96150588989258,40.75609977566361],[-73.94262313842773,40.775991804565585]]]]});
print polygons_union_centroid = geo_polygon_centroid(polygons)
Ausgabe
polygons_union_centroid |
---|
"type": "Point", "coordinates": [-73.968569587829577, 40.776310752555119]} |
Im folgenden Beispiel wird der Central Park-Schwerpunkt auf einer Karte visualisiert.
let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print
centroid = geo_polygon_centroid(central_park)
| render scatterchart with (kind = map)
Ausgabe
Im folgenden Beispiel wird aufgrund des ungültigen Polygons zurückgegeben true
.
print isnull(geo_polygon_centroid(dynamic({"type": "Polygon","coordinates": [[[0,0],[10,10],[10,10],[0,0]]]})))
Ausgabe
print_0 |
---|
true |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für