Bagikan melalui


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