Использование геопространственной функции Stream Analytics - PullRequest
0 голосов
/ 11 января 2019

Я хочу использовать геопространственные функции Stream Analytics с использованием данных широты / долготы (отправленных через Azure IoTHub) и целевых данных широты / долготы или полигонов (из эталонного ввода).

Я знаю, что мы можем объединить потоковые и эталонные входы в запросе, но возможно ли реализовать решение, у нас нет данных для объединения между потоковыми и эталонными входами и при этом все еще вычислять, например, расстояние между точками, используя ST_DISTANCE?

Пример эталонных входных данных:

"points":[
{
    "point": {
    "type" : "Point",
    "coordinates" : [0.0, 10.0] } 
},
{
    "point": {
    "type" : "Point",
    "coordinates" : [0.0, 0.0] }
},
{
    "point": {
    "type" : "Point",
    "coordinates" : [0.0, -5.0] }
}]

В приведенных выше данных будет больше точек, поэтому ручной ввод точек в запросе не будет хорошим решением.

Я ожидаю, что вывод будет содержать сравниваемые точки и их расстояние.

1 Ответ

0 голосов
/ 19 января 2019

После игры с SQL-запросом я обнаружил, что на самом деле CROSS JOIN доступно в Stream Analytics, но отсутствует в документации. Таким образом, используя что-то вроде:

SELECT ST_DISTANCE(CreatePoint(input.Lat, input.Lon), CreatePoint(ref.Lat, ref.Lon)) 
INTO output FROM inputStream input 
CROSS JOIN reference ref

работает.

...