geotree 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.txt +6 -2
- data/README.txt +27 -2
- data/lib/fig/geo_tree.pdf +0 -0
- data/lib/fig/multi_tree.pdf +0 -0
- data/lib/geotree/geotree.rb +4 -2
- data/lib/geotree/multitree.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d139e141c3f1de2d164a60d382a57dab14c145cb
|
4
|
+
data.tar.gz: a4e2951d2f513a39aac941e073dedb6f77a4b3bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec83653bcabfe8121c7954dc80550acb11f8578b4eb58b55a989450369b99d2b4d353008c4584d4d7dea6aaf0aab91ed77b3f7abd12086d64f27dd8aa826849f
|
7
|
+
data.tar.gz: 51fd669841ada4aae664cf500c63e8f358c4c596d4e9860d48075278de0365a82c78f5c7f78b99a5bb8786dd282b21f152aca973dee0dbb7197079ca5d76af8b
|
data/CHANGELOG.txt
CHANGED
data/README.txt
CHANGED
@@ -1,6 +1,31 @@
|
|
1
|
-
|
1
|
+
# @markup markdown
|
2
2
|
|
3
|
+
'geotree' : A ruby gem that maintains a set of geographical points, reports points lying within a query rectangle,
|
4
|
+
and supports multiple levels of detail.
|
5
|
+
=======
|
3
6
|
Written and (c) by Jeff Sember, April 2013.
|
4
|
-
================================================================================
|
5
7
|
|
6
8
|
|
9
|
+
|
10
|
+
GeoTree
|
11
|
+
-------
|
12
|
+
|
13
|
+
A GeoTree is a variant of a k-d tree, and stores data points that have a latitude
|
14
|
+
and longitude, a unique integer identifier, and an optional 'weight' (e.g., the
|
15
|
+
size of a city). GeoTrees are disk-based data structures and can store a very large
|
16
|
+
number of points efficiently. If desired, for smaller data sets, memory-only trees
|
17
|
+
can be constructed instead.
|
18
|
+
|
19
|
+
[An animation of a GeoTree in action.](../geotree/lib/fig/geo_tree.pdf "geo_tree.pdf")
|
20
|
+
|
21
|
+
MultiTree
|
22
|
+
-------
|
23
|
+
|
24
|
+
|
25
|
+
The gem includes MultiTree, a GeoTree variant that supports queries at multiple
|
26
|
+
levels of detail. For example, when focusing on a small region it can return points
|
27
|
+
that would be omitted when querying a much larger region.
|
28
|
+
|
29
|
+
[An animation of a MultiTree in action.](../geotree/lib/fig/multi_tree.pdf "multi_tree.pdf")
|
30
|
+
|
31
|
+
|
Binary file
|
Binary file
|
data/lib/geotree/geotree.rb
CHANGED
@@ -3,7 +3,7 @@ require_relative 'node'
|
|
3
3
|
req 'diskblockfile ptbuffer'
|
4
4
|
|
5
5
|
module GeoTreeModule
|
6
|
-
|
6
|
+
#
|
7
7
|
# A variant of a kd-tree, it is capable of maintaining sets of 2D points and efficiently
|
8
8
|
# reporting all points lying within (axis-aligned) query rectangles.
|
9
9
|
#
|
@@ -14,6 +14,8 @@ module GeoTreeModule
|
|
14
14
|
# A GeoTree is usually stored within a disk file, though it is also possible to
|
15
15
|
# construct a tree that exists only in memory; see the initialize(...) method.
|
16
16
|
#
|
17
|
+
# {An animation of a GeoTree in action.}[link:../../doc/geo_tree.pdf]
|
18
|
+
#
|
17
19
|
# Usage:
|
18
20
|
#
|
19
21
|
# [] Open a tree. If no tree exists, a new, empty one is created.
|
@@ -71,7 +73,7 @@ module GeoTreeModule
|
|
71
73
|
# Otherwise, (i) the datapoints can be retrieved from the tree to an array
|
72
74
|
# (by using a sufficiently large query rectangle), (ii) a new tree can be constructed,
|
73
75
|
# and (iii) each of the points in the array can be added to the new tree.
|
74
|
-
#
|
76
|
+
#
|
75
77
|
class GeoTree
|
76
78
|
|
77
79
|
ROOT_NODE_NAME_ = BlockFile::FIRST_BLOCK_ID
|
data/lib/geotree/multitree.rb
CHANGED
@@ -16,6 +16,8 @@ module GeoTreeModule
|
|
16
16
|
# When querying a MultiTree, the user must specify which level of detail (i.e.,
|
17
17
|
# which of the contained trees) is to be examined.
|
18
18
|
#
|
19
|
+
# {An animation of a MultiTree in action.}[link:../../doc/multi_tree.pdf]
|
20
|
+
#
|
19
21
|
class MultiTree
|
20
22
|
|
21
23
|
attr_reader :num_trees
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geotree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Sember
|
@@ -14,7 +14,7 @@ description: " \nA GeoTree is a variant of a k-d tree, and stores data points
|
|
14
14
|
have a latitude and longitude, \na unique integer identifier, and an optional 'weight'
|
15
15
|
(e.g., the size of a city). \nGeoTrees are disk-based data structures and can store
|
16
16
|
a very large number of points efficiently.\nIf desired, for smaller data sets, memory-only
|
17
|
-
trees can be constructed instead.\n\nThe gem includes
|
17
|
+
trees can be constructed instead.\n\nThe gem includes MultiTree, a GeoTree variant
|
18
18
|
that supports queries at \nmultiple levels of detail. For example, when focusing
|
19
19
|
on a \nsmall region it can return points that would be omitted when querying a much
|
20
20
|
larger region.\n\nAnimations illustrating GeoTrees and MultiTrees in action can
|
@@ -37,6 +37,8 @@ files:
|
|
37
37
|
- lib/geotree/pswriter.rb
|
38
38
|
- lib/geotree/ptbuffer.rb
|
39
39
|
- lib/geotree/tools.rb
|
40
|
+
- lib/fig/geo_tree.pdf
|
41
|
+
- lib/fig/multi_tree.pdf
|
40
42
|
- CHANGELOG.txt
|
41
43
|
- README.txt
|
42
44
|
- test/test_blockfile.rb
|