2017-04-21 2 views
1

私は関数内でGEO拡張を実行計画に使用しています。 私は、各センサーの位置(地理座標)を含むセンサー情報を含む複数のイベントストリームを持っています。 さらに、私は多角形を持っています(以下の例では、各点の座標を含みます)。センサーがこのポリゴンの境界内にあるかどうかを調べることができるかどうかを確認したいと思います。WSO2CEP Siddhi関数内で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管理コンソールのツール次のエラーが発生していることを試してみてください:

あなたが持っていますあなたの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]] '

なぜこのようなエラーが発生するのかわかりません。

誰かがこの問題について私を助けることができれば非常に感謝します。

ありがとうございます!

答えて

0

私はエラーを解決しました。 それは、それがGEOの構文で説明したように文字列の値であるため問題は、"{"type": "Polygon", "coordinates": [[[-104.05,48.99],[-97.22,48.98],[-96.58,45.94],[-104.03,45.94],[-104.05,48.99]]]}"あることすなわちマークと{"type": "Polygon", "coordinates": [[[-104.05,48.99],[-97.22,48.98],[-96.58,45.94],[-104.03,45.94],[-104.05,48.99]]]}を含めるために必要なため、エラーが存在した関数内シッディジオ拡張(https://docs.wso2.com/display/CEP420/Geo+Extension)には。

@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; 

ので、働いていた実行計画は以下のとおりです。

関連する問題