geo_polygon_centroid()
Kiszámítja egy sokszög vagy többpolygó centroidját a Földön.
Syntax
geo_polygon_centroid(
Sokszög)
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
Sokszög | dynamic |
✔️ | Sokszög vagy többpógony GeoJSON formátumban. |
Válaszok
A centroid koordinátaértékek GeoJSON formátumban és dinamikus adattípusban. Ha a sokszög vagy a többpógony érvénytelen, a lekérdezés null eredményt ad.
Megjegyzés
- A térinformatikai koordinátákat a WGS-84 koordináta-referenciarendszer képviseli.
- A Földi mérésekhez használt geodéziai datum egy gömb. A sokszög élek geodéziaiak a gömbön.
- Ha a bemeneti sokszögélek egyenes cartesian vonalak, fontolja meg a geo_polygon_densify() használatát a planáris élek geodéziaiká alakításához.
- Ha a bemenet többpolygonból áll, és több sokszöget tartalmaz, az eredmény a sokszögek egyesítő centroidja lesz.
Sokszög definíciója és megkötései
dynamic({"type": "Polygon","coordinates": [ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N ]})
dynamic({"type": "MultiPolygon","coordinates": [[ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N], ..., [LinearRingShell, LinearRingHole_1, ..., LinearRingHole_M]]})
- A LinearRingShell a [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]] rendezett tömbjeként
counterclockwise
van definiálva. Csak egy héj lehet. - A LinearRingHole nem kötelező, és a koordináták rendezett tömbjeként
clockwise
van definiálva [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]. Bármilyen számú belső gyűrű és lyuk lehet. - A LinearRing csúcsainak legalább három koordinátával kell különbözniük. Az első koordinátának meg kell egyeznie az utolsóval. Legalább négy bejegyzésre van szükség.
- A koordinátáknak [hosszúság, szélesség] érvényesnek kell lenniük. A hosszúságnak valós számnak kell lennie a(z) [-180, +180] tartományban, a szélességnek pedig valós számnak kell lennie a(z) [-90, +90] tartományban.
- A LinearRingShell a gömb legfeljebb felét tartalmazza. A LinearRing két régióra osztja a gömböt, és a két régió közül a kisebbet választja ki.
- A LinearRing élhosszának 180 foknál kisebbnek kell lennie. A két csúcspont közötti legrövidebb él van kiválasztva.
- A LinearRings nem lehet kereszt, és nem oszthatja meg az éleket. A LinearRings csúcsokat oszthat meg.
Példák
Az alábbi példa a New York-i Central Park centroid értékét számítja ki.
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)
Kimenet
centroid |
---|
{"type": "Point", "coordinates": [-73.965735689907618, 40.782550538057812]} |
Az alábbi példa kiszámítja a Central Park centroid hosszúságát.
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]
Kimenet
Lng |
---|
-73.9657356899076 |
Az alábbi példa a többpógonyú sokszögek egyesítését hajtja végre, és kiszámítja az egyesített sokszög centroidját.
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)
Kimenet
polygons_union_centroid |
---|
"type": "Point", "coordinates": [-73.968569587829577, 40.77631075255119]} |
Az alábbi példa egy térképen ábrázolja a Central Park centroidját.
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)
Kimenet
Az alábbi példa érvénytelen sokszög miatt ad vissza true
.
print isnull(geo_polygon_centroid(dynamic({"type": "Polygon","coordinates": [[[0,0],[10,10],[10,10],[0,0]]]})))
Kimenet
print_0 |
---|
true |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: