geo_intersection_2lines()
Menghitung titik potong dua garis atau multigaris.
Sintaks
geo_intersection_2lines(
lineString1,
lineString2)
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Jenis | Diperlukan | Deskripsi |
---|---|---|---|
lineString1 | dynamic |
✔️ | Garis atau multibaris dalam format GeoJSON. |
lineString2 | dynamic |
✔️ | Garis atau multibaris dalam format GeoJSON. |
Mengembalikan
Persimpangan dalam Format GeoJSON dan jenis data dinamis . Jika LineString atau MultiLineString tidak valid, kueri akan menghasilkan hasil null.
Catatan
- Koordinat geospasial diinterpretasikan sebagaimana direpresentasikan oleh sistem referensi koordinat WGS-84.
- Datum geodetik yang digunakan untuk mengukur jarak di Bumi adalah bola. Tepi garis adalah geodesik pada bola.
- Jika tepi garis input adalah garis kartesius lurus, pertimbangkan untuk menggunakan geo_line_densify() untuk mengubah tepi planar menjadi geodesik.
Batasan dan definisi LineString
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2],..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","coordinates": [[line_1, line_2,..., line_N]]})
- Larik koordinat LineString harus berisi minimal dua entri.
- Koordinat [bujur, lintang] harus valid di mana bujur adalah angka riil dalam rentang [-180, +180] dan garis lintang adalah angka riil dalam rentang [-90, +90].
- Panjang tepi harus kurang dari 180 derajat. Tepi terpendek antara dua puncak akan dipilih.
Tip
Gunakan LineString literal atau MultiLineString untuk performa yang lebih baik.
Contoh
Contoh berikut menghitung persimpangan antara dua baris. Dalam hal ini, hasilnya adalah titik.
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)
Output
intersection |
---|
{"type": "Point","coordinates": [-73.979837116670978,40.783989289772165]} |
Contoh berikut menghitung persimpangan antara dua baris. Dalam hal ini, hasilnya adalah garis.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
Output
intersection |
---|
{"type": "LineString","coordinates": [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]} |
Dua baris berikut tidak bersinggungan.
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)
Output
intersection |
---|
{"type": "GeometryCollection", "geometri": []} |
Contoh berikut akan mengembalikan hasil null karena salah satu garis tidak valid.
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))
Output
invalid |
---|
1 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk