Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Berekent een punt op breukwaarde op een lijn op aarde.
Syntaxis
geo_line_interpolate_point(
lineString,fractie)
Meer informatie over syntaxisconventies.
Parameterwaarden
| Naam | Typ | Verplicht | Beschrijving |
|---|---|---|---|
| lineString | dynamic |
✔️ | Een LineString in de GeoJSON-indeling. |
| fractie | real |
✔️ | breukwaarde moet tussen 0 (begin van de regel) en 1 (einde van de regel) zijn. |
Retouren
De puntcoördinaatwaarde in GeoJSON-indeling en van een dynamisch gegevenstype op regeltekenreeks op de specifieke breukwaarde. Als de waarde van de regel of breuk ongeldig is, produceert de query een null-resultaat.
Opmerking
- De georuimtelijke coördinaten worden geïnterpreteerd als vertegenwoordigd door het WGS-84 coördinaatverwijzingssysteem.
- De geodetische datum die wordt gebruikt om afstand op aarde te meten, is een bol. Lijnranden zijn geodesie op de bol.
- Als de randen van de invoerlijn rechte cartesische lijnen zijn, kunt u overwegen geo_line_densify() te gebruiken om planaire randen te converteren naar geodetica.
- De invoer mag niet meer dan één regeltekenreeks bevatten.
- Gebruik geo_line_locate_point() om een breukwaarde te berekenen
LineString-definitie en -beperkingen
dynamic({"type": "LineString","coördinaten": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
- LineString-coördinatenmatrix moet ten minste twee vermeldingen bevatten.
- Coördinaten [lengtegraad, breedtegraad] moeten geldig zijn wanneer lengtegraad een reëel getal is in het bereik [-180, +180] en breedtegraad een reëel getal is in het bereik [-90, +90].
- De lengte van de rand moet kleiner zijn dan 180 graden. De kortste rand tussen de twee hoekpunten wordt gekozen.
Voorbeelden
In het volgende voorbeeld wordt een punt op 25% locatie berekend sinds het begin van de regel.
let line = dynamic({"type":"LineString","coordinates":[[-73.95796, 40.80042], [-73.97317, 40.764486]]});
print point = geo_line_interpolate_point(line, 0.25);
Uitvoer
| punt |
|---|
| {"type": "Punt", "coördinaten": [-73.961764043218281, 40.791436687257232]} |
In het volgende voorbeeld wordt de puntlengte berekend op 90% sinds het begin van de regel.
let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334],[-73.98210525512695,40.76786669510221],[-73.96004676818848,40.7980870753293]]});
print point = geo_line_interpolate_point(line, 0.9)
| project lng = point.coordinates[0]
Uitvoer
| resultaat |
|---|
| -73.96556545832799 |
In het volgende voorbeeld wordt een punt op een kaart gevisualiseerd.
let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334],[-73.98210525512695,40.76786669510221],[-73.96004676818848,40.7980870753293]]});
print point = geo_line_interpolate_point(line, 0.9)
| render scatterchart with (kind = map)
Het volgende voorbeeld wordt geretourneerd true vanwege de ongeldige regel.
print is_bad_line = isnull(geo_line_interpolate_point(dynamic({"type":"LineString","coordinates":[[1, 1]]}), 0.5))
Uitvoer
| is_bad_line |
|---|
| waar |