geo_intersects_2lines()
İki satırın mı yoksa çok satırlı mı kesişip kesişmeyeceğini hesaplar.
Syntax
geo_intersects_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
İki satırın mı yoksa çok satırlı mı kesiştiği gösterir. lineString veya multiLineString geçersizse, sorgu null 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 üzerinde jeodeziktir .
- 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","koordinatlar": [[line_1, line_2, ..., line_N]]})
- LineString koordinatları dizisi en az iki giriş içermelidir.
- Koordinatlar [boylam, enlem] 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, bazı iki değişmez değer çizgisinin kesişip kesişmediğini denetler.
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 intersects = geo_intersects_2lines(lineString1, lineString2)
Çıkış
Kestiği |
---|
Doğru |
Aşağıdaki örnek, NYC GeoJSON yollar tablosundaki bazı ilgi alanlarıyla kesişen tüm yolları bulur.
let my_road = dynamic({"type":"LineString","coordinates":[[-73.97892951965332,40.78515573551921],[-73.98090362548828,40.78262115769851]]});
NY_Manhattan_Roads
| project name = features.properties.Label, road = features.geometry
| where geo_intersects_2lines(road, my_road)
| project name
Çıkış
name |
---|
Broadway |
W 78. St |
W 79. St |
W 80. St |
W 81st St |
Aşağıdaki örnek, satırlardan biri geçersiz olduğundan null sonuç döndürü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]]});
print isnull(geo_intersects_2lines(lineString1, lineString2))
Çıkış
print_0 |
---|
Doğru |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin