Я использую расширение GEO внутри функции в плане выполнения. У меня есть несколько потоков событий, которые содержат информацию о датчиках, включая местоположение каждого датчика (в географических координатах). Кроме того, у меня есть многоугольник (пример ниже, который содержит координаты каждой точки). Я хотел бы проверить, можно ли определить, находятся ли датчики в границах этого полигона.
Мой план выполнения следующий:
@Plan:name('TestExecutionPlan')
define stream sensorStream (id string, lat double, longi double);
define stream outputStream (id string);
from sensorStream [geo:within(lat,longi,{"type": "Polygon", "coordinates": [[[37.9807986, 23.7262081],[37.9807986, 23.7262081],[37.9792256, 23.7302850],[37.9789888, 23.7268089],[37.9807986, 23.7262081]]]})]
select id
insert into outputStream;
Когда я запускаю свой план выполнения в Siddhi Try It Tool консоли управления WSO2CEP, возникает следующая ошибка:
У вас есть ошибка в вашем SiddhiQL в строке 16:108, нет жизнеспособной альтернативы при вводе 'geo:within(sensorStream.lat, sensorStream.longi,{'type':'Polygon','coordinates': [[[37.9807986, 23.7262081 ],[37.9807986, 23.7262081],[37.9792256, 23.7302850],[37.9789888, 23.7268089],[37.9807986, 23.7262081]]]}'
Я не знаю, почему возникает эта ошибка.
Буду очень признателен, если кто-нибудь поможет мне в этом вопросе.
Спасибо!