RTree算法Java实现 JSI RTree Library的调用实例 标签:jsi-rtree-library
1. [代码]jsi-rtree-library
/**
*
*/
package com.mycompany.project;
//package net.sourceforge.jsi.examples;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
//import org.slf4j.*;
import com.infomatiq.jsi.*;
import gnu.trove.*;
import com.infomatiq.jsi.Rectangle;
import com.infomatiq.jsi.rtree.RTree;
public class Contains
{
private static Logger logger = Logger.getLogger(Contains.class);
public static void main(String[] args)
{
new Contains().run();
}
private void run()
{
// Create and initialize an rtree
SpatialIndex si = new RTree();
si.init(null);
// We have some points or rectangles in some other data structure.
// The rtree can handle millions of these.
Rectangle[] rects = new Rectangle[] { new Rectangle(0, 0, 0, 0),
new Rectangle(0, 1, 0, 1), new Rectangle(1, 0, 1, 0),
new Rectangle(1, 1, 1, 1),
new Rectangle(0.0f, 0.25f, 0.5f, 0.75f),
};
// Add our data to the rtree. Every time we add a rectangle we give it
// an ID. This ID is what is returned by querying the rtree. In this
// example we use the array index as the ID.
for (int i = 0; i < rects.length; i++)
{
si.add(rects[i], i);
}
// Now see which of these points is contained by some
// other rectangle. The rtree returns the results of a query
// by calling the execute() method on a TIntProcedure.
// In this example we want to save the results of the query
// into a list, so that's what the execute() method does.
class SaveToListProcedure implements TIntProcedure
{http://www.huiyi8.com/clxgt/窗帘效果图
private List<Integer> ids = new ArrayList<Integer>();
@Override
public boolean execute(int id)
{
ids.add(id);
return true;
};
private List<Integer> getIds()
{
return ids;
}
}
;
SaveToListProcedure myProc = new SaveToListProcedure();
si.contains(new Rectangle(-0.5f, -0.5f, 1.5f, 0.5f), myProc);
SaveToListProcedure insectMyProc = new SaveToListProcedure();
si.intersects(new Rectangle(-0.5f, -0.5f, 1.5f, 0.5f), insectMyProc);
List<Integer> intersectIds = insectMyProc.getIds();
for (Integer integer : intersectIds)
{
logger.info(rects[integer].toString() + "was intersected!");
}
}
}
RTree算法Java实现 JSI RTree Library的调用实例 标签:jsi-rtree-library的更多相关文章
- 归并排序算法 java 实现
归并排序算法 java 实现 可视化对比十多种排序算法(C#版) [直观学习排序算法] 视觉直观感受若干常用排序算法 算法概念 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Di ...
- 快速排序算法 java 实现
快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...
- 堆排序算法 java 实现
堆排序算法 java 实现 白话经典算法系列之七 堆与堆排序 Java排序算法(三):堆排序 算法概念 堆排序(HeapSort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,可以利用数组的特 ...
- Atitit 电子商务订单号码算法(java c# php js 微信
Atitit 电子商务订单号码算法(java c# php js 微信 1.1. Js版本的居然钱三爷里面没有..只好自己实现了. 1.2. 订单号标准化...长度16位 1.3. 订单号的结构 前 ...
- 无向图的最短路径算法JAVA实现
一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图. ...
- 无向图的最短路径算法JAVA实现(转)
一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图. ...
- 基于FP-Tree的关联规则FP-Growth推荐算法Java实现
基于FP-Tree的关联规则FP-Growth推荐算法Java实现 package edu.test.ch8; import java.util.ArrayList; import java.util ...
- 双色球机选算法java实现
双色球机选算法java实现 一.代码 package com.hdwang; import java.util.Random; /** * Created by admin on 2017/1/10. ...
- Floyd算法java实现demo
Floyd算法java实现,如下: https://www.cnblogs.com/Halburt/p/10756572.html package a; /** * ┏┓ ┏┓+ + * ┏┛┻━━━ ...
随机推荐
- GOF 23种设计模式-单例模式
• 创建型模式: – 单例模式.工厂模式.抽象工厂模式.建造者模式.原型模式. • 结构型模式: – 适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模 式. • 行为型模式: – ...
- Head First Python 学习笔记-Chapter3:文件读取和异常处理
第三章中主要介绍了简单的文件读取和简单的异常处理操作. 首先建立文件文件夹:HeadFirstPython\chapter3,在Head First Pythong官方站点下载须要使用的文件:sket ...
- 设计模式之中介者模式(Mediator)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程.它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- mqtt client python example
This is a simple example showing how to use the [Paho MQTT Python client](https://eclipse.org/paho/c ...
- hdu 1081 & poj 1050 To The Max(最大和的子矩阵)
转载请注明出处:http://blog.csdn.net/u012860063 Description Given a two-dimensional array of positive and ne ...
- Android - Activity定制横屏(landscape)显示
Activity定制横屏(landscape)显示 本文地址: http://blog.csdn.net/caroline_wendy Android横屏(landscape)显示: android ...
- PC常用电源IC、MOS、三极管、二极管厂家
笔记本常用MOS.三极管.二极管厂家: 1.EMC 杰力电子(台湾)官方网站:http://www.excelliancemos.com/tw/solution.php 2.UBIQ(台湾电源厂家UP ...
- oracle [union.minus.intersect]
union 两张表的相同字段的数据[记录类型和列数要一致],合并,并且去重 can replace with "in" (但是如果是两个不同的表而且没什么关联的话必须要union了 ...
- 看完此文,妈妈还会担心你docker入不了门?
本文在个人技术博客不同步发布,详情可猛戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩... 上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!!这我 ...
- caffe搭建以及初步学习--win7-vs2013-gtx650tiboost-cuda8.0-cifar10训练和测试-2-完整解决方案cifar10_full_solver.prototxt
首先总结前一节的内容. 简单的讲,就是训练并测试了快速解决方案. 转换数据格式: convert_cifar_data.exe data/cifar10 examples/cifar10 lmdb 计 ...