Rtree实现多维空间搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rtree实现多维空间搜索相关的知识,希望对你有一定的参考价值。

    好的,现在有这么一个需求。你所开发的应用的数据库中有全市所有饭店的经纬度坐标,现在你在某地定位了一个坐标,应用如何给你找出最近的饭店。多维空间搜索,使用RTree。这里只推荐已有的实现了RTree的jar包。

maven项目,可下载jar包,并且这是一个简单的例子:https://github.com/aled/jsi-examples

在线API:http://jsi.sourceforge.net/apidocs/index.html 


下面附上自己很low的测试代码:

net.sf.jsi.examples;

gnu.trove.procedure.TIntProcedure;
net.sf.jsi.Point;
net.sf.jsi.Rectangle;
net.sf.jsi.SpatialIndex;
net.sf.jsi.rtree.RTree;

TestRTree {
    run() {
        Point point = Point(, );
        Rectangle[] rectangle = Rectangle[];
        rectangle[] = Rectangle(, , , );
        rectangle[] = Rectangle(, , , );
        rectangle[] = Rectangle(-, -, -, -);
        rectangle[] = Rectangle(-, -, -, -);
        SpatialIndex si = RTree();
        si.init();
        (i = ; i < rectangle.; i++) {
            si.add(rectangle[i], i);
        }
        si.nearestN(point, TIntProcedure() {
            execute(i) {
                System..println(+ i + + [i] + + [i].distance());
                ;
            }
        }, , Float.);

    }

    main(String[] args) {
        TestRTree().run();
    }
}


本文出自 “12571026” 博客,请务必保留此出处http://12581026.blog.51cto.com/12571026/1931233

以上是关于Rtree实现多维空间搜索的主要内容,如果未能解决你的问题,请参考以下文章

RTree源代码——C语言实现

python rtree包查找三维空间下的最近设备

使用 rtree 和普通索引的 SQLite 查询很慢

我可以在线程中使用 Boost.Geometry.index.rtree 吗?

为何说一维空间到多维空间可以实现相互转换?

连续空间的多维数组实现