geo_line_buffer()
Giriş çizgisinin verilen yarıçapı içindeki tüm noktaları içeren çokgen veya çok köşeligonu veya Dünya'da çok satırlı değerleri hesaplar.
Syntax
geo_line_buffer(
Linestring,
Radıus,
Tolerans)
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
Linestring | dynamic |
✔️ | GeoJSON biçiminde bir LineString veya MultiLineString. |
Radıus | real |
✔️ | Metre olarak arabellek yarıçapı. Geçerli değer pozitif olmalıdır. |
Tolerans | real |
Bir çokgenin ideal yarıçaptan ne kadar sapabileceğini belirleyen ölçümlerdeki toleransı tanımlar. Belirtilmemişse, varsayılan değer 10 kullanılır. Tolerans, yarıçapın %0,0001'inden düşük olmamalıdır. Yarıçaptan büyük tolerans belirtilmesi, toleransı yarıçapın altındaki mümkün olan en büyük değere düşürür. |
Döndürülenler
LineString veya MultiLineString girişinde çokgen veya MultiPolygon. Koordinatlar, yarıçap veya tolerans 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.
- 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.
- Çizgilerin uçları yuvarlaktır.
- Çizgilerin her iki tarafı da arabelleğe alınıyor.
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.
Örnekler
Aşağıdaki sorgu, 4 metre yarıçapı ve 0,1 metre toleransı ile çizgi etrafında çokgen hesaplar
let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
Arabellek |
---|
{"type": "Polygon", "coordinates": [ ... ]} |
Aşağıdaki sorgu her satırın etrafındaki arabelleği hesaplar ve sonucu birleştirilir
datatable(line:dynamic)
[
dynamic({"type":"LineString","coordinates":[[14.429214068940496,50.10043066548272],[14.431184174126173,50.10046525983731]]}),
dynamic({"type":"LineString","coordinates":[[14.43030222687753,50.100780677801936],[14.4303847111523,50.10020274910934]]})
]
| project buffer = geo_line_buffer(line, 2, 0.1)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
sonuç |
---|
{"type": "Polygon","coordinates": [ ... ]} |
Aşağıdaki örnek, geçersiz satır nedeniyle true değerini döndürür.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
Arabellek |
---|
Doğru |
Aşağıdaki örnek, geçersiz yarıçap nedeniyle true değerini döndürür.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
Arabellek |
---|
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