300x250 AD TOP

Search This Blog


Paling Dilihat

Powered by Blogger.

Saturday, April 11, 2009


I had an idea for a geographic application not so long ago and I was looking for an algorithm to find all elements in a specific region (e.g. spatial index), finally I came upon an algorithm called RTree but I still couldn't find a C# code.

So I decided to port Java Spatial Index Library

You can find it here:

Basic usage

Create a new instance:
RTree.RTree<T> tree = new RTree.RTree<T>();
Create a rectangle:
RTree.Rectangle rect = new RTree.Rectangle(1, 2, 3, 4, 5, 6);

Add a new rectangle to the RTree:
tree.Add(rect, object);

Check which objects are inside the rectangle:
var objects = tree.Contains(rect);

Count how many items in the RTree:
var i = tree.Count;

Check which objects intersect with the rectangle:
var objects = tree.Intersects(rect);

Create a point:
RTree.Point point = new RTree.Point(1, 2, 3);

Get a list of rectangles close to the point with maximum distance:
var objects = tree.Nearest(point, 10);

The library's code can be improved, but I needed something quick for a POC.
Tags: , ,