geo_intersection_2lines()

İki çizginin veya birden çok çizginin kesişimini hesaplar.

Syntax

geo_intersection_2lines(lineString1,lineString2)

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
lineString1 dynamic ✔️ GeoJSON biçiminde bir satır veya çok satırlı.
lineString2 dynamic ✔️ GeoJSON biçiminde bir satır veya çok satırlı.

Döndürülenler

GeoJSON Biçiminde ve dinamik veri türünde kesişim. LineString veya MultiLineString geçersizse, sorgu null bir sonuç üretir.

Not

  • Jeo-uzamsal koordinatlar , WGS-84 koordinat başvuru sistemi tarafından temsil edilen şekilde yorumlanır.
  • Dünya üzerindeki mesafeyi ölçmek için kullanılan jeodetik datum bir küredir. Çizgi kenarları küre üzerindeki jeodeziklerdir .
  • Giriş çizgisi kenarları düz kartezyen çizgilerse, planlı kenarları jeodeziklere dönüştürmek için geo_line_densify() kullanmayı göz önünde bulundurun.

LineString tanımı ve kısıtlamaları

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]]})

  • LineString koordinatları dizisi en az iki giriş içermelidir.
  • [boylam, enlem] koordinatları geçerli olmalıdır; burada boylam [-180, +180] aralığında gerçek bir sayıdır ve enlem [-90, +90] aralığında gerçek bir sayıdır.
  • Kenar uzunluğu 180 dereceden az olmalıdır. İki köşe arasındaki en kısa kenar seçilir.

İpucu

Daha iyi performans için sabit LineString veya MultiLineString kullanın.

Örnekler

Aşağıdaki örnek, iki çizgi arasındaki kesişimi hesaplar. Bu durumda sonuç bir noktadır.

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)

Çıkış

Kesişim
{"type": "Point","coordinates": [-73.979837116670978,40.783989289772165]}

Aşağıdaki örnek, iki çizgi arasındaki kesişimi hesaplar. Bu durumda sonuç bir çizgidir.

let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)

Çıkış

Kesişim
{"type": "LineString","coordinates": [[ -73.978929, 40.785155],[ -73.980903, 40.782621]}

Aşağıdaki iki satır kesişmiyor.

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)

Çıkış

Kesişim
{"type": "GeometryCollection", "geometries": []}

Aşağıdaki örnek, satırlardan biri geçersiz olduğundan null bir sonuç döndürür.

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))

Çıkış

geçersiz
1