Aracılığıyla paylaş


Stream Analytics coğrafi işlevlerine giriş

Azure Stream Analytics'teki jeo-uzamsal işlevler, akış jeo-uzamsal verilerde gerçek zamanlı analize olanak tanır. Yalnızca birkaç kod satırıyla, karmaşık senaryolar için bir üretim sınıfı çözümü geliştirebilirsiniz. Bu işlevler tüm WKT türlerini ve GeoJSON Point, Polygon ve LineString'i destekler.

Jeo-uzamsal işlevlerden yararlanabilecek senaryolara örnek olarak şunlar verilebilir:

  • Araç paylaşımı
  • Filo yönetimi
  • Varlık izleme
  • Coğrafi sınırlama
  • Cep siteleri arasında telefon izleme

Stream Analytics Sorgu Dili yedi yerleşik jeo-uzamsal işleve sahiptir: CreateLineString, CreatePoint, CreatePolygon, ST_DISTANCE, ST_OVERLAPS, ST_INTERSECTS ve ST_WITHIN.

CreateLineString

CreateLineString İşlev noktaları kabul eder ve harita üzerinde çizgi olarak çizilebilen bir GeoJSON LineString döndürür. LineString oluşturmak için en az iki noktanız olmalıdır. LineString noktaları sırayla bağlanır.

Aşağıdaki sorgu, üç nokta kullanarak bir LineString oluşturmak için kullanır CreateLineString . İlk nokta akış giriş verilerinden oluşturulurken, diğer ikisi el ile oluşturulur.

SELECT  
     CreateLineString(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5))  
FROM input  

Giriş örneği

enlem boylam
3.0 -10.2
-87.33 20.2321

Çıkış örneği

{"type" : "LineString", "coordinates" : [ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5] ]}

{"type" : "LineString", "coordinates" : [ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5] ]}

Daha fazla bilgi edinmek için CreateLineString başvuruyu ziyaret edin .

CreatePoint

işlevi CreatePoint bir enlem ve boylam kabul eder ve harita üzerinde çizilebilen bir GeoJSON noktası döndürür. Enlemleriniz ve boylamlarınız float veri türü olmalıdır.

Aşağıdaki örnek sorgu, akış giriş verilerinden gelen enlemler ve boylamları kullanarak bir nokta oluşturmak için CreatePoint kullanır.

SELECT  
     CreatePoint(input.latitude, input.longitude)  
FROM input 

Giriş örneği

enlem boylam
3.0 -10.2
-87.33 20.2321

Çıkış örneği

{"type" : "Point", "coordinates" : [-10.2, 3.0]}

{"type" : "Point", "coordinates" : [20.2321, -87.33]}

Daha fazla bilgi edinmek için CreatePoint başvurusunu ziyaret edin.

CreatePolygon

CreatePolygon işlevi noktaları kabul eder ve GeoJSON çokgen kaydı döndürür. Noktaların sırası sağ el kuralına göre veya saat yönünün tersine izlemelidir. Bir noktadan diğerine bildirildiği sırayla yürüdüğünü düşünün. Çokgenin merkezi tüm zaman boyunca solunuzda olur.

Aşağıdaki örnek sorgu, üç noktadan çokgen oluşturmak için kullanır CreatePolygon . İlk iki nokta el ile oluşturulur ve son nokta giriş verilerinden oluşturulur.

SELECT  
     CreatePolygon(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5), CreatePoint(input.latitude, input.longitude))  
FROM input  

Giriş örneği

enlem boylam
3.0 -10.2
-87.33 20,2321

Çıkış örneği

{"type" : "Polygon", "coordinates" : [[ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5], [-10.2, 3.0] ]]}

{"type" : "Polygon", "coordinates" : [[ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5], [20.2321, -87.33] ]]}

Daha fazla bilgi edinmek için CreatePolygon başvuru sayfasını ziyaret edin.

ST_DISTANCE

İşlev, ST_DISTANCE metre cinsinden iki geometri arasındaki uzaklığı döndürür.

Aşağıdaki sorgu, bir benzin istasyonu arabadan 10 km'den az olduğunda bir olay oluşturmak için ST_DISTANCE kullanır.

SELECT Cars.Location, Station.Location 
FROM Cars c  
JOIN Station s ON ST_DISTANCE(c.Location, s.Location) < 10 * 1000

Daha fazla bilgi edinmek için ST_DISTANCE referansını ziyaret edin.

ST_OVERLAPS

ST_OVERLAPS işlevi iki geometriyi karşılaştırır. Geometriler çakışıyorsa işlev bir 1 döndürür. Geometriler çakışmazsa işlev 0 döndürür.

Aşağıdaki sorgu, bir bina olası bir sel bölgesi içinde olduğunda bir olay oluşturmak için kullanır ST_OVERLAPS .

SELECT Building.Polygon, Building.Polygon 
FROM Building b 
JOIN Flooding f ON ST_OVERLAPS(b.Polygon, b.Polygon) 

Aşağıdaki örnek sorgu, bir fırtına bir arabaya doğru yöneldiğinde bir olay oluşturur.

SELECT Cars.Location, Storm.Course
FROM Cars c, Storm s
JOIN Storm s ON ST_OVERLAPS(c.Location, s.Course)

Daha fazla bilgi edinmek için ST_OVERLAPS başvuruyu ziyaret edin.

ST_INTERSECTS

ST_INTERSECTS işlevi iki geometriyi karşılaştırır. Geometriler kesişirse işlev 1 döndürür. Geometriler birbiriyle kesişmezse işlev 0 döndürür.

Aşağıdaki örnek sorgu, kaldırımlı bir yolun toprak bir yola kesişip kesişmediğini belirlemek için kullanır ST_INTERSECTS .

SELECT  
     ST_INTERSECTS(input.pavedRoad, input.dirtRoad)  
FROM input  

Giriş örneği

veri merkezi alanı fırtınaAlanı
{"type":"LineString", "coordinates": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} {"type":"LineString", "coordinates": [ [0.0, 10.0], [0.0, 0.0], [0.0, -10.0] ]}
{"type":"LineString", "coordinates": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} {"type":"LineString", "coordinates": [ [-10.0, 10.0], [0.0, 10.0], [10.0, 10.0] ]}

Çıkış örneği

1

0

Daha fazla bilgi edinmek için ST_INTERSECTS referansını ziyaret edin.

ST_WITHIN

İşlev, ST_WITHIN geometrinin başka bir geometri içinde olup olmadığını belirler. birincisi son içinde yer alırsa işlev 1 döndürür. İlk geometri son geometrinin içinde yer almıyorsa işlev 0 döndürür.

Aşağıdaki örnek sorgu, teslim hedef noktasının verilen ambar çokgeninde olup olmadığını belirlemek için kullanır ST_WITHIN .

SELECT  
     ST_WITHIN(input.deliveryDestination, input.warehouse)  
FROM input 

Giriş örneği

teslimatYeri warehouse
{"type":"Point", "coordinates": [76.6, 10.1]} {"type":"Polygon", "coordinates": [ [0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0] ]}
{"type":"Point", "coordinates": [15.0, 15.0]} {"type":"Polygon", "coordinates": [ [10.0, 10.0], [20.0, 10.0], [20.0, 20.0], [10.0, 20.0], [10.0, 10.0] ]}

Çıkış örneği

0

1

Daha fazla bilgi edinmek için ST_WITHIN başvurusuna ziyaret edin.

Sonraki Adımlar