2

空間データベースで特定の形状を見つけるために、CQL クエリを作成しようとしています。

クエリが最大の交点を持つ形状を返すようにします。私の考えは、LIMIT=1 と sortBy の交差点を設定することでした。

スクリーンショットが添付されている場合は、クエリが次のように返されることを希望します。

左から右への三角形

  • Filter1 --> 黄色の形
  • Filter2 --> 黄色の形
  • Filter3 --> 緑の形

私の問題を解決する方法はありますか?

これまでのところ、次のコードを使用しています。

    Filter f1 = CQL.toFilter("INTERSECTS(the_geom, POLYGON((10.07051 53.23476, 10.08143 53.23512, 10.07596 53.22838, 10.07051 53.23476)))");
    Filter f2 = CQL.toFilter("INTERSECTS(the_geom, POLYGON((10.06268 53.23756, 10.06889 53.23865, 10.06260 53.24903, 10.06268 53.23756)))");
    Filter f3 = CQL.toFilter("INTERSECTS(the_geom, POLYGON((10.08146 53.24462, 10.09540 53.24761, 10.08247 53.26067, 10.08146 53.24462)))");

    Query query = new Query( typeName, f3);
    query.setMaxFeatures(1);
    source.getFeatures(query);

    SimpleFeatureCollection features = source.getFeatures(query);
    SimpleFeatureIterator it = features.features();
    while (it.hasNext()){
        SimpleFeature sf = it.next();
        System.out.println(sf.getAttributes());
    }

スクリーンショットはこちら

4

0 に答える 0