我正在将功能中的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;
当我在WSO2CEP管理控制台的Siddhi Try It Tool中运行执行计划时,发生以下错误:
你在第16:108行的SiddhiQL中有错误,没有可行性 在输入'geo:within(sensorStream.lat, sensorStream.longi,{ '类型': '多边形', '坐标':[[[37.9807986, 23.7262081],[37.9807986,23.7262081],[37.9792256,23.7302850],[37.9789888,23.7268089],[37.9807986,23.7262081]]]}'
我不知道为什么会出现这种错误。
如果有人可以帮我解决这个问题,我将非常感激。
谢谢!
答案 0 :(得分:0)
我解决了错误。
错误是存在的,因为它需要包含带有问号的// Error: 9
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# File "C:\maya_scripts\temp.py", line 4, in <module>
# print "Hello"
# IOError: [Errno 9] Bad file descriptor //
,即{"type": "Polygon", "coordinates": [[[-104.05,48.99],[-97.22,48.98],[-96.58,45.94],[-104.03,45.94],[-104.05,48.99]]]}
,因为它是一个字符串值,因为它在geo的语法中解释:在Siddhi Geo Extension中的函数内(https://docs.wso2.com/display/CEP420/Geo+Extension)。
因此,有效的执行计划如下:
"{"type": "Polygon", "coordinates": [[[-104.05,48.99],[-97.22,48.98],[-96.58,45.94],[-104.03,45.94],[-104.05,48.99]]]}"