geo_intersection_2lines()
Oblicza przecięcie dwóch linii lub wielu linii.
Składnia
geo_intersection_2lines(
lineString1,
lineString2)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
lineString1 | dynamic |
✔️ | Wiersz lub wielowierszowy w formacie GeoJSON. |
lineString2 | dynamic |
✔️ | Wiersz lub wielowierszowy w formacie GeoJSON. |
Zwraca
Skrzyżowanie w formacie GeoJSON i dynamicznym typie danych . Jeśli ciąg LineString lub MultiLineString są nieprawidłowe, zapytanie zwróci 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ą. Krawędzie linii są geodesykami na sferze.
- 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.
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.
Porada
Użyj literału LineString lub MultiLineString, aby uzyskać lepszą wydajność.
Przykłady
Poniższy przykład oblicza przecięcie między dwoma liniami. W tym przypadku wynik jest punktem.
let lineString1 = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[-73.985195,40.788275],[-73.974552,40.779761]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Dane wyjściowe
Przecięcia |
---|
{"type": "Point","coordinates": [-73.979837116670978,40.783989289772165]} |
Poniższy przykład oblicza przecięcie między dwoma liniami. W tym przypadku wynik jest wierszem.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
Dane wyjściowe
Przecięcia |
---|
{"type": "LineString","coordinates": [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]} |
Następujące dwa wiersze nie przecinają się.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3],[4, 4]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Dane wyjściowe
Przecięcia |
---|
{"type": "GeometryCollection", "geometrie": []} |
Poniższy przykład zwróci wynik o wartości null, ponieważ jeden z wierszy jest nieprawidłowy.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3]]});
print invalid = isnull(geo_intersection_2lines(lineString1, lineString2))
Dane wyjściowe
nieprawidłowe |
---|
1 |
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