Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Beräknar en punkt på en polygon eller en multipolygon, som är närmast en viss punkt på jorden.
Syntax
geo_closest_point_on_polygon(
longitud,
breddgrad,
polygon)
Läs mer om syntaxkonventioner.
Parameterar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
longitud | real |
✔️ | Geospatial koordinat, longitudvärde i grader. Giltigt värde är ett verkligt tal och i intervallet [-180, +180]. |
breddgrad | real |
✔️ | Geospatial koordinat, latitudvärde i grader. Giltigt värde är ett verkligt tal och i intervallet [-90, +90]. |
polygon | dynamic |
✔️ | Polygon eller multipolygon i GeoJSON-format. |
Retur
En punkt i GeoJSON-format och av en dynamisk datatyp på en polygon eller multipolygon som är närmast en viss punkt på jorden. Om polygon innehåller indatapunkt blir resultatet samma punkt. Om koordinaterna eller polygonerna är ogiltiga genererar frågan ett null-resultat.
Anmärkning
- Geospatiala koordinater tolkas som de representeras av WGS-84-koordinatreferenssystemet .
- Det geodetiska datum som används för mätningar på jorden är en sfär. Polygonkanter är geodesik på sfären.
- Om indatapolygonkanter är raka kartesiska linjer bör du överväga att använda geo_polygon_densify() för att konvertera plana kanter till geodesik.
- För att beräkna ett avstånd mellan den närmaste punkten på en polygon eller multipolygon till en viss punkt använder du geo_distance_point_to_polygon()
Polygondefinitioner och begränsningar
dynamic({"type": "Polygon","coordinates": [LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N]})
dynamic({"type": "MultiPolygon","coordinates": [[LinearRingShell, LinearRingHole_1,..., LinearRingHole_N],..., [LinearRingShell, LinearRingHole_1,..., LinearRingHole_M]]})
- LinearRingShell krävs och definieras som en
counterclockwise
ordnad matris med koordinater [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]. Det kan bara finnas ett gränssnitt. - LinearRingHole är valfritt och definierat som en
clockwise
ordnad matris med koordinater [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]. Det kan finnas valfritt antal inre ringar och hål. - Linjära hörn måste vara distinkta med minst tre koordinater. Den första koordinaten måste vara lika med den sista. Minst fyra poster krävs.
- Koordinaterna [longitud, latitud] måste vara giltiga. Longitud måste vara ett verkligt tal i intervallet [-180, +180] och latitud måste vara ett verkligt tal i intervallet [-90, +90].
- LinearRingShell omsluter högst hälften av sfären. Linjärring delar upp sfären i två regioner. Den mindre av de två regionerna väljs.
- Linjär kantlängd måste vara mindre än 180 grader. Den kortaste kanten mellan de två hörnen väljs.
- Linjära linjer får inte korsas och får inte dela kanter. LinearRings kan dela hörn.
- Polygon innehåller inte nödvändigtvis dess hörn.
Tips/Råd
- Användning av literalpolygoner kan ge bättre prestanda.
Exempel
I följande exempel beräknas en plats i Central Park som är närmast en viss punkt.
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 geo_closest_point_on_polygon(-73.9839, 40.7705, central_park)
Resultat
print_0 |
---|
{"type": "Point","coordinates": [-73.981205580153926, 40.769359452843211] } |
I följande exempel returneras ett null-resultat på grund av ogiltiga koordinatindata.
print result = isnull(geo_closest_point_on_polygon(500,1,dynamic({"type": "Polygon","coordinates": [[[0,0],[10,10],[10,1],[0,0]]]})))
Resultat
resultat |
---|
sann |
I följande exempel returneras ett null-resultat på grund av ogiltiga polygonindata.
print result = isnull(geo_closest_point_on_polygon(1,1,dynamic({"type": "Polygon","coordinates": [[[0,0],[10,10],[10,10],[0,0]]]})))
Resultat
resultat |
---|
sann |