geotree 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|