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