geo_line_buffer()
Oblicza wielokąt lub wielobiegun, który zawiera wszystkie punkty w danym promieniu linii wejściowej lub wielowierszowej na Ziemi.
Składnia
geo_line_buffer(
Linestring,
Promień,
Tolerancji)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Linestring | dynamic |
✔️ | Ciąg lineString lub MultiLineString w formacie GeoJSON. |
Promień | real |
✔️ | Promień buforu w metrach. Prawidłowa wartość musi być dodatnia. |
Tolerancji | real |
Definiuje tolerancję w metrach, która określa, ile wielokąt może odbiegać od idealnego promienia. Jeśli nie zostanie określona, zostanie użyta wartość 10 domyślna. Tolerancja nie powinna być niższa niż 0,0001% promienia. Określenie tolerancji większej niż promień obniża tolerancję do największej możliwej wartości poniżej promienia. |
Zwraca
Wielokąt lub MultiPolygon wokół wejściowego ciągu LineString lub MultiLineString. Jeśli współrzędne lub promień lub tolerancja są nieprawidłowe, zapytanie generuje wynik o wartości null.
Uwaga
- Współrzędne geoprzestrzenne są interpretowane jako reprezentowane przez system odniesienia współrzędnych WGS-84 .
- Dataum geodetyczne używane do mierzenia odległości na Ziemi jest sferą.
- Jeśli krawędzie linii wejściowej są prostymi liniami kartezjańskimi, rozważ użycie geo_line_densify(), aby przekonwertować krawędzie planarne na geodesyki.
- Końce linii są zaokrąglone.
- Obie strony linii są buforowane.
Definicja i ograniczenia lineString
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","współrzędne": [[line_1, line_2, ..., line_N]]})
- Tablica współrzędnych LineString musi zawierać co najmniej dwa wpisy.
- Współrzędne [długość geograficzna, szerokość geograficzna] muszą być prawidłowe, gdy długość geograficzna jest liczbą rzeczywistą w zakresie [-180, +180], a szerokość geograficzna jest liczbą rzeczywistą w zakresie [-90, +90].
- Długość krawędzi musi być mniejsza niż 180 stopni. Zostanie wybrana najkrótsza krawędź między dwoma wierzchołkami.
Przykłady
Poniższe zapytanie oblicza wielokąt wokół linii z promieńem 4 metrów i tolerancją miernika 0,1
let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
Buforu |
---|
{"type": "Polygon", "coordinates": [ ... ]} |
Poniższe zapytanie oblicza bufor wokół każdego wiersza i jednoczy wynik
datatable(line:dynamic)
[
dynamic({"type":"LineString","coordinates":[[14.429214068940496,50.10043066548272],[14.431184174126173,50.10046525983731]]}),
dynamic({"type":"LineString","coordinates":[[14.43030222687753,50.100780677801936],[14.4303847111523,50.10020274910934]]})
]
| project buffer = geo_line_buffer(line, 2, 0.1)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
result |
---|
{"type": "Polygon","współrzędne": [ ... ]} |
Poniższy przykład zwróci wartość true z powodu nieprawidłowego wiersza.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
Buforu |
---|
Prawda |
Poniższy przykład zwróci wartość true z powodu nieprawidłowego promienia.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
Buforu |
---|
Prawda |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla