2016-05-04 9 views
0

SQLite関数circleを書く必要があります。C *のR * -treeのSQLite関数

SELECT id FROM demo_index WHERE id MATCH circle(45.3, 22.9, 5.0) 

私はこれを始めています:

[SQLiteFunction(Arguments = 3, FuncType = FunctionType.Scalar, Name = "circle")] 
    public class GetPointsInCircle : SQLiteFunction 
    { 
     public override object Invoke(object[] args) 
     { 
      double centerX = Convert.ToDouble(args[0]); 
      double centerY = Convert.ToDouble(args[1]); 
      double radius = Convert.ToDouble(args[2]); 
     } 
    } 
次のようなクエリでは、円は5.0の半径45.3,22.9を中心と重複する全てのR *ツリーのエントリを検索するために使用されます

Invokeメソッドについて検索したところ、メソッド呼び出し中に渡されるargsを処理しています。しかし、現在のr * -treeにアクセスして必要なエントリを取得するにはどうしたらよいですか?

答えて

0

SQLiteFunctionは、プレーンSQL関数を登録します。

Rツリーのジオメトリコールバックの登録は、これとは異なり、.net SQLiteドライバではサポートされていません。

+0

お返事ありがとうございました!私はどこにもそれを見つけることができなかったので、私はC#で関数を書くことを試みるのに多くの時間を費やしました。 – MyName