simpler-tiles 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Rakefile +5 -13
- data/ext/simpler_tiles/bounds.c +0 -1
- data/ext/simpler_tiles/extconf.rb +2 -2
- data/ext/simpler_tiles/layer.c +3 -57
- data/ext/simpler_tiles/layer.h +7 -3
- data/ext/simpler_tiles/map.c +31 -9
- data/ext/simpler_tiles/query.c +1 -0
- data/ext/simpler_tiles/raster_layer.c +39 -0
- data/ext/simpler_tiles/raster_layer.h +17 -0
- data/ext/simpler_tiles/simpler_tiles.c +2 -1
- data/ext/simpler_tiles/simpler_tiles.h +4 -1
- data/ext/simpler_tiles/style.c +1 -1
- data/ext/simpler_tiles/vector_layer.c +67 -0
- data/ext/simpler_tiles/vector_layer.h +17 -0
- data/index.erb +19 -8
- data/index.html +6 -2
- data/lib/simpler_tiles.rb +2 -0
- data/lib/simpler_tiles/layer.rb +1 -20
- data/lib/simpler_tiles/layer/raster_layer.rb +16 -0
- data/lib/simpler_tiles/layer/vector_layer.rb +24 -0
- data/lib/simpler_tiles/map.rb +8 -2
- data/lib/simpler_tiles/version.rb +1 -1
- data/simpler-tiles.gemspec +2 -1
- data/test/test_simpler_tiles.rb +38 -31
- metadata +23 -4
- data/ext/simpler_tiles/depend +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd21718ad62a0b2238de78ce0096cd783d25e1b3
|
4
|
+
data.tar.gz: a096000461cd55af2e4af2ff5485a10e5358ffa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4071fcc119529339f57fb9d91b902f1f5794cde59de0aad1a7469064d6a4ace72bcc2c15248291e8e044dcbb1cf42d0690f0a7b93edda8e298efcf72fefdeaa4
|
7
|
+
data.tar.gz: e89e44f566b8a41069fff6828445b4246fb3db9eaf47852ea3511feb5d6bfb30b15da8bdd9c15488e5ef009578a20de01b494bc3b5be92b26d61cf1d268c15a1
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -29,7 +29,6 @@ task :publish do |t|
|
|
29
29
|
`git checkout master`
|
30
30
|
end
|
31
31
|
|
32
|
-
|
33
32
|
require 'rake/testtask'
|
34
33
|
Rake::TestTask.new(:test) do |test|
|
35
34
|
test.libs << 'lib' << 'test'
|
@@ -38,17 +37,15 @@ Rake::TestTask.new(:test) do |test|
|
|
38
37
|
end
|
39
38
|
|
40
39
|
task :default => :test
|
41
|
-
|
40
|
+
# e.g. DEV_CONFIG='--with-simple-tiles-include=/tmp/simple-tiles/usr/local/include/ --with-simple-tiles-lib=/tmp/simple-tiles/usr/local/lib/' bundle exec rake test
|
42
41
|
require 'rake/extensiontask'
|
43
42
|
Rake::ExtensionTask.new('simpler_tiles') do |ext|
|
43
|
+
if ENV['DEV_CONFIG']
|
44
|
+
ext.config_options << ENV['DEV_CONFIG']
|
45
|
+
end
|
44
46
|
ext.lib_dir = File.join('lib', 'simpler_tiles')
|
45
47
|
end
|
46
48
|
|
47
|
-
DEPEND = "ext/simpler_tiles/depend"
|
48
|
-
file DEPEND => FileList["ext/simpler_tiles/*.c"] do |t|
|
49
|
-
`cd ext/simpler_tiles/; gcc -MM *.c > depend`
|
50
|
-
end
|
51
|
-
|
52
49
|
DATA = "data/tl_2010_us_state10.shp"
|
53
50
|
file DATA do |t|
|
54
51
|
if !File.exists? t.name
|
@@ -62,10 +59,5 @@ file DATA do |t|
|
|
62
59
|
end
|
63
60
|
end
|
64
61
|
|
65
|
-
Rake::Task[:compile].prerequisites.unshift DEPEND
|
66
62
|
Rake::Task[:test].prerequisites.unshift DATA
|
67
|
-
Rake::Task[:test].prerequisites.unshift :compile
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
63
|
+
Rake::Task[:test].prerequisites.unshift :compile
|
data/ext/simpler_tiles/bounds.c
CHANGED
@@ -6,8 +6,8 @@ ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
|
6
6
|
LIBDIR = RbConfig::CONFIG['libdir']
|
7
7
|
INCLUDEDIR = RbConfig::CONFIG['includedir']
|
8
8
|
|
9
|
-
$CFLAGS << " #{ENV["CFLAGS"]}" << `
|
10
|
-
$LIBS << " #{ENV["LIBS"]}" << `
|
9
|
+
$CFLAGS << " #{ENV["CFLAGS"]}" << `pkg-config --cflags simple-tiles`.chomp << `gdal-config --cflags`.chomp
|
10
|
+
$LIBS << " #{ENV["LIBS"]}" << `pkg-config --libs simple-tiles`.chomp << `gdal-config --libs`
|
11
11
|
|
12
12
|
HEADER_DIRS = [
|
13
13
|
'/usr/local/include',
|
data/ext/simpler_tiles/layer.c
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
#include "layer.h"
|
2
2
|
#include <simple-tiles/layer.h>
|
3
|
-
#include <simple-tiles/query.h>
|
4
3
|
#include <simple-tiles/list.h>
|
5
4
|
|
6
|
-
VALUE cSimplerTilesLayer;
|
7
|
-
|
8
5
|
static simplet_layer_t *
|
9
6
|
get_layer(VALUE self){
|
10
7
|
simplet_layer_t *layer;
|
@@ -12,27 +9,13 @@ get_layer(VALUE self){
|
|
12
9
|
return layer;
|
13
10
|
}
|
14
11
|
|
15
|
-
static void
|
16
|
-
mark_layer(void *layer){
|
17
|
-
simplet_layer_t *lyr = layer;
|
18
|
-
VALUE ref = (VALUE)simplet_layer_get_user_data(lyr);
|
19
|
-
if(ref) rb_gc_mark(ref);
|
20
|
-
}
|
21
|
-
|
22
|
-
static void
|
23
|
-
layer_free(void *layer){
|
24
|
-
simplet_layer_t *lyr = layer;
|
25
|
-
simplet_layer_free(lyr);
|
26
|
-
}
|
27
|
-
|
28
|
-
|
29
12
|
/*
|
30
13
|
Set the source attribute for the Layer.
|
31
14
|
|
32
15
|
@return (String)
|
33
16
|
@param (String)
|
34
17
|
*/
|
35
|
-
|
18
|
+
VALUE
|
36
19
|
set_source(VALUE self, VALUE source){
|
37
20
|
Check_Type(source, T_STRING);
|
38
21
|
simplet_layer_t *layer = get_layer(self);
|
@@ -45,47 +28,10 @@ Get a copy of the Layer's source.
|
|
45
28
|
|
46
29
|
@return (String)
|
47
30
|
*/
|
48
|
-
|
31
|
+
VALUE
|
49
32
|
get_source(VALUE self) {
|
50
33
|
simplet_layer_t *layer = get_layer(self);
|
51
34
|
char *source;
|
52
35
|
simplet_layer_get_source(layer, &source);
|
53
36
|
return rb_str_new2(source);
|
54
|
-
}
|
55
|
-
|
56
|
-
/*
|
57
|
-
Add a query object to this Layer's list of queries.
|
58
|
-
|
59
|
-
@param (String)
|
60
|
-
@return (Query)
|
61
|
-
*/
|
62
|
-
static VALUE
|
63
|
-
add_query(VALUE self, VALUE query){
|
64
|
-
simplet_layer_t *layer = get_layer(self);
|
65
|
-
simplet_query_t *qry;
|
66
|
-
Data_Get_Struct(query, simplet_query_t, qry);
|
67
|
-
simplet_layer_add_query_directly(layer, qry);
|
68
|
-
VALUE circ_ref = self;
|
69
|
-
simplet_query_set_user_data(qry, (void *)circ_ref);
|
70
|
-
simplet_retain((simplet_retainable_t*) qry);
|
71
|
-
return query;
|
72
|
-
}
|
73
|
-
|
74
|
-
VALUE
|
75
|
-
layer_alloc(VALUE klass){
|
76
|
-
simplet_layer_t *layer;
|
77
|
-
if(!(layer = simplet_layer_new("")))
|
78
|
-
rb_fatal("Could not allocate space for a new SimplerTiles::Layer in memory.");
|
79
|
-
|
80
|
-
return Data_Wrap_Struct(klass, mark_layer, layer_free, layer);
|
81
|
-
}
|
82
|
-
|
83
|
-
void init_layer(){
|
84
|
-
VALUE rlayer = rb_define_class_under(mSimplerTiles, "Layer", rb_cObject);
|
85
|
-
rb_define_alloc_func(rlayer, layer_alloc);
|
86
|
-
rb_define_method(rlayer, "source=", set_source, 1);
|
87
|
-
rb_define_method(rlayer, "source", get_source, 0);
|
88
|
-
rb_define_private_method(rlayer, "add_query", add_query, 1);
|
89
|
-
|
90
|
-
cSimplerTilesLayer = rlayer;
|
91
|
-
}
|
37
|
+
}
|
data/ext/simpler_tiles/layer.h
CHANGED
data/ext/simpler_tiles/map.c
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
#include "map.h"
|
2
|
-
#include
|
2
|
+
#include <simple-tiles/util.h>
|
3
3
|
#include <simple-tiles/map.h>
|
4
|
-
#include <simple-tiles/
|
4
|
+
#include <simple-tiles/memory.h>
|
5
|
+
#include <simple-tiles/vector_layer.h>
|
6
|
+
#include <simple-tiles/raster_layer.h>
|
5
7
|
#include <simple-tiles/bounds.h>
|
6
8
|
#include <simple-tiles/list.h>
|
7
9
|
|
@@ -211,23 +213,42 @@ set_height(VALUE self, VALUE height){
|
|
211
213
|
|
212
214
|
|
213
215
|
/*
|
214
|
-
Create and return a {
|
216
|
+
Create and return a {VectorLayer} based on the passed in string.
|
215
217
|
|
216
218
|
@param (String)
|
217
219
|
@return (Layer)
|
218
220
|
*/
|
219
221
|
static VALUE
|
220
|
-
|
222
|
+
add_vector_layer(VALUE self, VALUE layer){
|
221
223
|
simplet_map_t *map = get_map(self);
|
222
|
-
|
223
|
-
Data_Get_Struct(layer,
|
224
|
-
simplet_map_add_layer_directly(map, lyr);
|
224
|
+
simplet_vector_layer_t *lyr;
|
225
|
+
Data_Get_Struct(layer, simplet_vector_layer_t, lyr);
|
226
|
+
simplet_map_add_layer_directly(map, (simplet_layer_t *) lyr);
|
225
227
|
VALUE circ_ref = self;
|
226
|
-
|
228
|
+
simplet_vector_layer_set_user_data(lyr, (void *)circ_ref);
|
227
229
|
simplet_retain((simplet_retainable_t*) lyr);
|
228
230
|
return layer;
|
229
231
|
}
|
230
232
|
|
233
|
+
/*
|
234
|
+
Create and return a {RasterLayer} based on the passed in string.
|
235
|
+
|
236
|
+
@param (String)
|
237
|
+
@return (Layer)
|
238
|
+
*/
|
239
|
+
static VALUE
|
240
|
+
add_raster_layer(VALUE self, VALUE layer){
|
241
|
+
simplet_map_t *map = get_map(self);
|
242
|
+
simplet_raster_layer_t *lyr;
|
243
|
+
Data_Get_Struct(layer, simplet_raster_layer_t, lyr);
|
244
|
+
simplet_map_add_layer_directly(map, (simplet_layer_t *) lyr);
|
245
|
+
VALUE circ_ref = self;
|
246
|
+
simplet_raster_layer_set_user_data(lyr, (void *)circ_ref);
|
247
|
+
simplet_retain((simplet_retainable_t*) lyr);
|
248
|
+
return layer;
|
249
|
+
}
|
250
|
+
|
251
|
+
|
231
252
|
/*
|
232
253
|
Test to see if the Map has fulfilled the requirements for rendering
|
233
254
|
|
@@ -333,7 +354,8 @@ init_map(){
|
|
333
354
|
rb_define_method(rmap, "slippy", slippy, 3);
|
334
355
|
rb_define_method(rmap, "valid?", is_valid, 0);
|
335
356
|
rb_define_private_method(rmap, "to_png_stream", to_png_stream, 1);
|
336
|
-
rb_define_private_method(rmap, "
|
357
|
+
rb_define_private_method(rmap, "add_vector_layer", add_vector_layer, 1);
|
358
|
+
rb_define_private_method(rmap, "add_raster_layer", add_raster_layer, 1);
|
337
359
|
|
338
360
|
cSimplerTilesMap = rmap;
|
339
361
|
}
|
data/ext/simpler_tiles/query.c
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
#include "raster_layer.h"
|
2
|
+
#include "layer.h"
|
3
|
+
#include <simple-tiles/layer.h>
|
4
|
+
#include <simple-tiles/raster_layer.h>
|
5
|
+
#include <simple-tiles/list.h>
|
6
|
+
|
7
|
+
VALUE cSimplerTilesRasterLayer;
|
8
|
+
|
9
|
+
static void
|
10
|
+
mark_layer(void *layer){
|
11
|
+
simplet_raster_layer_t *lyr = layer;
|
12
|
+
VALUE ref = (VALUE)simplet_raster_layer_get_user_data(lyr);
|
13
|
+
if(ref) rb_gc_mark(ref);
|
14
|
+
}
|
15
|
+
|
16
|
+
static void
|
17
|
+
layer_free(void *layer){
|
18
|
+
simplet_raster_layer_t *lyr = layer;
|
19
|
+
simplet_raster_layer_free(lyr);
|
20
|
+
}
|
21
|
+
|
22
|
+
VALUE
|
23
|
+
raster_layer_alloc(VALUE klass){
|
24
|
+
simplet_raster_layer_t *layer;
|
25
|
+
if(!(layer = simplet_raster_layer_new("")))
|
26
|
+
rb_fatal("Could not allocate space for a new SimplerTiles::Layer in memory.");
|
27
|
+
|
28
|
+
return Data_Wrap_Struct(klass, mark_layer, layer_free, layer);
|
29
|
+
}
|
30
|
+
|
31
|
+
void init_raster_layer(){
|
32
|
+
VALUE rRasterLayer = rb_define_class_under(mSimplerTiles, "RasterLayer", rb_cObject);
|
33
|
+
rb_define_alloc_func(rRasterLayer, raster_layer_alloc);
|
34
|
+
|
35
|
+
rb_define_method(rRasterLayer, "source=", set_source, 1);
|
36
|
+
rb_define_method(rRasterLayer, "source", get_source, 0);
|
37
|
+
|
38
|
+
cSimplerTilesRasterLayer = rRasterLayer;
|
39
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#ifndef _SIMPLER_RASTER_LAYER_H
|
2
|
+
#define _SIMPLER_RASTER_LAYER_H
|
3
|
+
|
4
|
+
#include "simpler_tiles.h"
|
5
|
+
|
6
|
+
#ifdef __cplusplus
|
7
|
+
extern "C" {
|
8
|
+
#endif
|
9
|
+
|
10
|
+
void init_raster_layer();
|
11
|
+
extern VALUE cSimplerTilesRasterLayer;
|
12
|
+
|
13
|
+
#ifdef __cplusplus
|
14
|
+
}
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#endif
|
@@ -2,11 +2,14 @@
|
|
2
2
|
#define _SIMPLER_TILES_H
|
3
3
|
|
4
4
|
#include <simple-tiles/simple_tiles.h>
|
5
|
+
#undef STRNCASECMP
|
6
|
+
#undef STRCASECMP
|
5
7
|
#include <ruby.h>
|
6
8
|
|
7
9
|
#include "map.h"
|
8
10
|
#include "bounds.h"
|
9
|
-
#include "
|
11
|
+
#include "vector_layer.h"
|
12
|
+
#include "raster_layer.h"
|
10
13
|
#include "query.h"
|
11
14
|
#include "style.h"
|
12
15
|
|
data/ext/simpler_tiles/style.c
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
#include "vector_layer.h"
|
2
|
+
#include "layer.h"
|
3
|
+
#include <simple-tiles/layer.h>
|
4
|
+
#include <simple-tiles/vector_layer.h>
|
5
|
+
#include <simple-tiles/query.h>
|
6
|
+
#include <simple-tiles/list.h>
|
7
|
+
#include <simple-tiles/memory.h>
|
8
|
+
|
9
|
+
VALUE cSimplerTilesVectorLayer;
|
10
|
+
|
11
|
+
static simplet_vector_layer_t *
|
12
|
+
get_layer(VALUE self){
|
13
|
+
simplet_vector_layer_t *layer;
|
14
|
+
Data_Get_Struct(self, simplet_vector_layer_t, layer);
|
15
|
+
return layer;
|
16
|
+
}
|
17
|
+
|
18
|
+
|
19
|
+
static void
|
20
|
+
mark_layer(void *layer){
|
21
|
+
simplet_vector_layer_t *lyr = layer;
|
22
|
+
VALUE ref = (VALUE)simplet_vector_layer_get_user_data(lyr);
|
23
|
+
if(ref) rb_gc_mark(ref);
|
24
|
+
}
|
25
|
+
|
26
|
+
static void
|
27
|
+
layer_free(void *layer){
|
28
|
+
simplet_vector_layer_t *lyr = layer;
|
29
|
+
simplet_vector_layer_free(lyr);
|
30
|
+
}
|
31
|
+
|
32
|
+
/*
|
33
|
+
Add a query object to this Layer's list of queries.
|
34
|
+
|
35
|
+
@param (String)
|
36
|
+
@return (Query)
|
37
|
+
*/
|
38
|
+
static VALUE
|
39
|
+
add_query(VALUE self, VALUE query){
|
40
|
+
simplet_vector_layer_t *layer = get_layer(self);
|
41
|
+
simplet_query_t *qry;
|
42
|
+
Data_Get_Struct(query, simplet_query_t, qry);
|
43
|
+
simplet_vector_layer_add_query_directly(layer, qry);
|
44
|
+
VALUE circ_ref = self;
|
45
|
+
simplet_query_set_user_data(qry, (void *)circ_ref);
|
46
|
+
simplet_retain((simplet_retainable_t*) qry);
|
47
|
+
return query;
|
48
|
+
}
|
49
|
+
|
50
|
+
VALUE
|
51
|
+
vector_layer_alloc(VALUE klass){
|
52
|
+
simplet_vector_layer_t *layer;
|
53
|
+
if(!(layer = simplet_vector_layer_new("")))
|
54
|
+
rb_fatal("Could not allocate space for a new SimplerTiles::Layer in memory.");
|
55
|
+
|
56
|
+
return Data_Wrap_Struct(klass, mark_layer, layer_free, layer);
|
57
|
+
}
|
58
|
+
|
59
|
+
void init_vector_layer(){
|
60
|
+
VALUE rVectorLayer = rb_define_class_under(mSimplerTiles, "VectorLayer", rb_cObject);
|
61
|
+
rb_define_alloc_func(rVectorLayer, vector_layer_alloc);
|
62
|
+
rb_define_method(rVectorLayer, "source=", set_source, 1);
|
63
|
+
rb_define_method(rVectorLayer, "source", get_source, 0);
|
64
|
+
rb_define_private_method(rVectorLayer, "add_query", add_query, 1);
|
65
|
+
|
66
|
+
cSimplerTilesVectorLayer = rVectorLayer;
|
67
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#ifndef _SIMPLER_VECTOR_LAYER_H
|
2
|
+
#define _SIMPLER_VECTOR_LAYER_H
|
3
|
+
|
4
|
+
#include "simpler_tiles.h"
|
5
|
+
|
6
|
+
#ifdef __cplusplus
|
7
|
+
extern "C" {
|
8
|
+
#endif
|
9
|
+
|
10
|
+
void init_vector_layer();
|
11
|
+
extern VALUE cSimplerTilesVectorLayer;
|
12
|
+
|
13
|
+
#ifdef __cplusplus
|
14
|
+
}
|
15
|
+
#endif
|
16
|
+
|
17
|
+
#endif
|
data/index.erb
CHANGED
@@ -169,7 +169,8 @@
|
|
169
169
|
GIS image generation library. It allows you to generate PNG based map
|
170
170
|
images without having to dip into straight C and easily connects with
|
171
171
|
ActiveRecord. It can display any vector data that
|
172
|
-
<a href="http://www.gdal.org/ogr/ogr_formats.html">OGR</a> can read
|
172
|
+
<a href="http://www.gdal.org/ogr/ogr_formats.html">OGR</a> can read and any
|
173
|
+
raster data that <a href="http://www.gdal.org/formats_list.html">GDAL</a> can read..
|
173
174
|
</p>
|
174
175
|
|
175
176
|
<p>
|
@@ -216,10 +217,16 @@ $ gem install simpler-tiles
|
|
216
217
|
C structure and specifies the limit of the map in spatial coordinates.
|
217
218
|
</li>
|
218
219
|
<li>
|
219
|
-
<tt><a href="doc/SimplerTiles/Map.html">SimplerTiles::
|
220
|
-
the <tt><a href="http://propublica.github.com/simple-tiles/#
|
220
|
+
<tt><a href="doc/SimplerTiles/Map.html">SimplerTiles::VectorLayer</a></tt>: wraps
|
221
|
+
the <tt><a href="http://propublica.github.com/simple-tiles/#vector_layers">simplet_vector_layer_t</a></tt>
|
221
222
|
C structure and contains an OGR connection string for a particular data source,
|
222
|
-
and contains a list of <tt>SimplerTiles::Query</tt> objects.
|
223
|
+
and contains a list of <tt>SimplerTiles::Query</tt> objects. <strong>Note:</strong> The <tt>SimplerTiles::Layer</tt>
|
224
|
+
class now proxies to <tt>VectorLayer</tt>.
|
225
|
+
</li>
|
226
|
+
<li>
|
227
|
+
<tt><a href="doc/SimplerTiles/Map.html">SimplerTiles::RasterLayer</a></tt>: wraps
|
228
|
+
the <tt><a href="http://propublica.github.com/simple-tiles/#raster_layers">simplet_raster_layer_t</a></tt>
|
229
|
+
C structure and contains an GDAL connection string for a particular data source.
|
223
230
|
</li>
|
224
231
|
<li>
|
225
232
|
<tt><a href="doc/SimplerTiles/Query.html">SimplerTiles::Query</a></tt>: wraps
|
@@ -256,7 +263,7 @@ map = SimplerTiles::Map.new do |m|
|
|
256
263
|
m.set_bounds(-585080.885134, 6849466.721081, 4161303.603672, 9587780.816356)
|
257
264
|
|
258
265
|
Dir["\#\{ROOT\}/data/*.shp"].each do |shp|
|
259
|
-
m.
|
266
|
+
m.vector_layer shp do |l|
|
260
267
|
l.query "select * from '\#\{File.basename shp, '.shp'\}'" do |q|
|
261
268
|
q.styles "stroke" => "#111111",
|
262
269
|
"line-join" => "round",
|
@@ -310,7 +317,7 @@ get '/tiles/*/:x/:y/:z.png' do
|
|
310
317
|
m.slippy params[:x].to_i, params[:y].to_i, params[:z].to_i
|
311
318
|
|
312
319
|
# Add a layer based on the parameters in the URL
|
313
|
-
m.
|
320
|
+
m.vector_layer File.join(ROOT, params[:splat].first) do |l|
|
314
321
|
|
315
322
|
# Grab all of the data from the shapefile
|
316
323
|
l.query "select * from '\#\{File.basename(params[:splat].first, '.shp')\}'" do |q|
|
@@ -435,6 +442,10 @@ CODE
|
|
435
442
|
<h2>Change Log</h2>
|
436
443
|
|
437
444
|
<dl>
|
445
|
+
<dd><b>0.2.1</b> — June 21st, 2014</dd>
|
446
|
+
<dt>Added raster support. (thanks <a href="http://github.com/ashaw">Al Shaw</a>)</dt>
|
447
|
+
<dd><b>0.1.1</b> — February, 10th 2014</dd>
|
448
|
+
<dt>Small fix for building on OSX.</dt>
|
438
449
|
<dd><b>0.1.1</b> — February, 10th 2014</dd>
|
439
450
|
<dt>Small fix for building on OSX.</dt>
|
440
451
|
<dd><b>0.1.0</b> — February, 4th 2014</dd>
|
@@ -444,13 +455,13 @@ CODE
|
|
444
455
|
<dd><b>0.0.8</b> — April, 11th 2013</dd>
|
445
456
|
<dt>Fix missing constant</dt>
|
446
457
|
<dd><b>0.0.7</b> — February, 27th 2013</dd>
|
447
|
-
<dt>Fix deprecation warnings and compatibility with Simple Tiles 0.3.0, (thanks <a href="http://github.com/adamtrilling">
|
458
|
+
<dt>Fix deprecation warnings and compatibility with Simple Tiles 0.3.0, (thanks <a href="http://github.com/adamtrilling">Adam Trilling</a>)</dt>
|
448
459
|
<dd><b>0.0.6</b> — January, 30th 2013</dd>
|
449
460
|
<dt><tt>ar_layer</tt> now yields like <tt>layer</tt></dt>
|
450
461
|
<dd><b>0.0.5</b> — January, 14th 2013</dd>
|
451
462
|
<dt>Make the connection string for <tt>ar_layer</tt> more robust.</dt>
|
452
463
|
<dd><b>0.0.4</b> — December 8, 2012</dd>
|
453
|
-
<dt>Fix connection string for <tt>ar_layer</tt> (thanks <a href="http://github.com/adamtrilling">
|
464
|
+
<dt>Fix connection string for <tt>ar_layer</tt> (thanks <a href="http://github.com/adamtrilling">Adam Trilling</a>)</dt>
|
454
465
|
<dd><b>0.0.3</b> — June 23, 2012</dd>
|
455
466
|
<dt>Better search paths for cairo.</dt>
|
456
467
|
<dd><b>0.0.2</b> — April 10, 2012</dd>
|
data/index.html
CHANGED
@@ -415,6 +415,10 @@ $ gem install simpler-tiles
|
|
415
415
|
<h2>Change Log</h2>
|
416
416
|
|
417
417
|
<dl>
|
418
|
+
<dd><b>0.2.0</b> — June 21st, 2014</dd>
|
419
|
+
<dt>Added raster support. (thanks <a href="http://github.com/ashaw">Al Shaw</a>)</dt>
|
420
|
+
<dd><b>0.1.1</b> — February, 10th 2014</dd>
|
421
|
+
<dt>Small fix for building on OSX.</dt>
|
418
422
|
<dd><b>0.1.1</b> — February, 10th 2014</dd>
|
419
423
|
<dt>Small fix for building on OSX.</dt>
|
420
424
|
<dd><b>0.1.0</b> — February, 4th 2014</dd>
|
@@ -424,13 +428,13 @@ $ gem install simpler-tiles
|
|
424
428
|
<dd><b>0.0.8</b> — April, 11th 2013</dd>
|
425
429
|
<dt>Fix missing constant</dt>
|
426
430
|
<dd><b>0.0.7</b> — February, 27th 2013</dd>
|
427
|
-
<dt>Fix deprecation warnings and compatibility with Simple Tiles 0.3.0, (thanks <a href="http://github.com/adamtrilling">
|
431
|
+
<dt>Fix deprecation warnings and compatibility with Simple Tiles 0.3.0, (thanks <a href="http://github.com/adamtrilling">Adam Trilling</a>)</dt>
|
428
432
|
<dd><b>0.0.6</b> — January, 30th 2013</dd>
|
429
433
|
<dt><tt>ar_layer</tt> now yields like <tt>layer</tt></dt>
|
430
434
|
<dd><b>0.0.5</b> — January, 14th 2013</dd>
|
431
435
|
<dt>Make the connection string for <tt>ar_layer</tt> more robust.</dt>
|
432
436
|
<dd><b>0.0.4</b> — December 8, 2012</dd>
|
433
|
-
<dt>Fix connection string for <tt>ar_layer</tt> (thanks <a href="http://github.com/adamtrilling">
|
437
|
+
<dt>Fix connection string for <tt>ar_layer</tt> (thanks <a href="http://github.com/adamtrilling">Adam Trilling</a>)</dt>
|
434
438
|
<dd><b>0.0.3</b> — June 23, 2012</dd>
|
435
439
|
<dt>Better search paths for cairo.</dt>
|
436
440
|
<dd><b>0.0.2</b> — April 10, 2012</dd>
|
data/lib/simpler_tiles.rb
CHANGED
@@ -8,6 +8,8 @@ require "#{SimplerTiles::ROOT}/simpler_tiles/simpler_tiles"
|
|
8
8
|
require "#{SimplerTiles::ROOT}/simpler_tiles/mixins/pp"
|
9
9
|
require "#{SimplerTiles::ROOT}/simpler_tiles/map"
|
10
10
|
require "#{SimplerTiles::ROOT}/simpler_tiles/layer"
|
11
|
+
require "#{SimplerTiles::ROOT}/simpler_tiles/layer/vector_layer"
|
12
|
+
require "#{SimplerTiles::ROOT}/simpler_tiles/layer/raster_layer"
|
11
13
|
require "#{SimplerTiles::ROOT}/simpler_tiles/query"
|
12
14
|
require "#{SimplerTiles::ROOT}/simpler_tiles/style"
|
13
15
|
require "#{SimplerTiles::ROOT}/simpler_tiles/bounds"
|
data/lib/simpler_tiles/layer.rb
CHANGED
@@ -1,25 +1,6 @@
|
|
1
1
|
module SimplerTiles
|
2
2
|
# The Layer object contains connection info for a particular datasource and
|
3
3
|
# tracks a list of {Query}s.
|
4
|
-
class Layer
|
5
|
-
include SimplerTiles::PP
|
6
|
-
|
7
|
-
# Initialize a Layer
|
8
|
-
def initialize(source)
|
9
|
-
self.source = source
|
10
|
-
yield self if block_given?
|
11
|
-
end
|
12
|
-
|
13
|
-
# Add a query to this Layer's c list.
|
14
|
-
def query(sql, &blk)
|
15
|
-
layer = SimplerTiles::Query.new(sql, &blk)
|
16
|
-
add_query layer
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def inspect_attributes
|
22
|
-
[:source]
|
23
|
-
end
|
4
|
+
class Layer < VectorLayer
|
24
5
|
end
|
25
6
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SimplerTiles
|
2
|
+
# The VectorLayer object contains connection info for a particular datasource and
|
3
|
+
# tracks a list of {Query}s.
|
4
|
+
class VectorLayer
|
5
|
+
include SimplerTiles::PP
|
6
|
+
|
7
|
+
def initialize(source)
|
8
|
+
self.source = source
|
9
|
+
yield self if block_given?
|
10
|
+
end
|
11
|
+
|
12
|
+
# Add a query to this Layer's c list.
|
13
|
+
def query(sql, &blk)
|
14
|
+
layer = SimplerTiles::Query.new(sql, &blk)
|
15
|
+
add_query layer
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def inspect_attributes
|
21
|
+
[:source]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/simpler_tiles/map.rb
CHANGED
@@ -11,8 +11,14 @@ module SimplerTiles
|
|
11
11
|
|
12
12
|
# Add a layer to the c list of layers and yield the new layer.
|
13
13
|
def layer(source, &blk)
|
14
|
-
layer = SimplerTiles::
|
15
|
-
|
14
|
+
layer = SimplerTiles::VectorLayer.new(source, &blk)
|
15
|
+
add_vector_layer layer
|
16
|
+
end
|
17
|
+
|
18
|
+
# Add a raster layer
|
19
|
+
def raster_layer(source)
|
20
|
+
layer = SimplerTiles::RasterLayer.new(source)
|
21
|
+
add_raster_layer layer
|
16
22
|
end
|
17
23
|
|
18
24
|
# A convienence method to use Active Record configuration and add a new
|
data/simpler-tiles.gemspec
CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.summary = %q{A set of ruby bindings for the Simple Tiles mapping library.}
|
24
24
|
|
25
25
|
s.add_development_dependency(%q<rake-compiler>, [">= 0"])
|
26
|
-
s.add_development_dependency(%q<bundler>, ["
|
26
|
+
s.add_development_dependency(%q<bundler>, [">= 1.5.0"])
|
27
|
+
s.add_development_dependency(%q<minitest>, ["~> 4.0.0"])
|
27
28
|
s.add_development_dependency(%q<shoulda>, ["~> 3.5.0"])
|
28
29
|
s.add_development_dependency(%q<yard>, ["~> 0.8.0"])
|
29
30
|
end
|
data/test/test_simpler_tiles.rb
CHANGED
@@ -3,15 +3,21 @@ require "#{File.join(File.dirname(__FILE__))}/helper"
|
|
3
3
|
class TestSimplerTiles < Test::Unit::TestCase
|
4
4
|
should "produce a png image" do
|
5
5
|
map = SimplerTiles::Map.new do |m|
|
6
|
-
m.
|
6
|
+
# m.bgcolor = "#000000"
|
7
|
+
m.srs = "EPSG:32614"
|
8
|
+
m.width = 256
|
9
|
+
m.height = 256
|
10
|
+
m.set_bounds(195585.000, 3472515.000, 427815.000, 3235485.000)
|
7
11
|
m.layer "#{File.dirname(__FILE__)}/../data/tl_2010_us_state10.shp" do |l|
|
8
12
|
l.query "SELECT * from 'tl_2010_us_state10'" do |q|
|
9
|
-
q.styles 'fill' => "#
|
13
|
+
q.styles 'fill' => "#000dff",
|
10
14
|
'line-join' => "round",
|
11
|
-
'line-cap' => "square"
|
12
|
-
'seamless' => "true"
|
15
|
+
'line-cap' => "square"
|
13
16
|
end
|
14
17
|
end
|
18
|
+
# to set a nodata flag on a landsat look img
|
19
|
+
# gdal_translate -a_nodata 0 someplaceintexas.jpg someplaceintexas_nodata.jpg
|
20
|
+
m.raster_layer "#{File.dirname(__FILE__)}/../data/someplaceintexas-nodata.jpg"
|
15
21
|
end
|
16
22
|
|
17
23
|
assert map.valid?
|
@@ -26,33 +32,34 @@ class TestSimplerTiles < Test::Unit::TestCase
|
|
26
32
|
|
27
33
|
|
28
34
|
should "not crash with memory errors" do
|
29
|
-
GC.disable
|
30
|
-
t =
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
# GC.disable
|
36
|
+
# t = 10.times.map do
|
37
|
+
# Thread.new do
|
38
|
+
# map = SimplerTiles::Map.new do |m|
|
39
|
+
# m.slippy 3, 6, 4
|
40
|
+
# m.layer "#{File.dirname(__FILE__)}/../data/tl_2010_us_state10.shp" do |l|
|
41
|
+
# l.query "SELECT * from 'tl_2010_us_state10'" do |q|
|
42
|
+
# q.styles 'fill' => "#061F3799",
|
43
|
+
# 'line-join' => "round",
|
44
|
+
# 'line-cap' => "square",
|
45
|
+
# 'seamless' => "true"
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
# m.raster_layer "#{File.dirname(__FILE__)}/../data/someplaceintexas.jpg"
|
49
|
+
# end
|
43
50
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
t.map(&:join)
|
51
|
+
# assert map.valid?
|
52
|
+
# map.to_png do |data|
|
53
|
+
# assert data
|
54
|
+
# File.open "#{File.dirname(__FILE__)}/out.png", "wb" do |f|
|
55
|
+
# f.write data
|
56
|
+
# end
|
57
|
+
# assert data.length
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
# end
|
61
|
+
# t.map(&:join)
|
62
|
+
# GC.enable
|
63
|
+
# GC.start
|
55
64
|
end
|
56
|
-
GC.enable
|
57
|
-
GC.start
|
58
65
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simpler-tiles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Larson
|
@@ -28,16 +28,30 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.5.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.5.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: shoulda
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +96,6 @@ files:
|
|
82
96
|
- Rakefile
|
83
97
|
- ext/simpler_tiles/bounds.c
|
84
98
|
- ext/simpler_tiles/bounds.h
|
85
|
-
- ext/simpler_tiles/depend
|
86
99
|
- ext/simpler_tiles/extconf.rb
|
87
100
|
- ext/simpler_tiles/layer.c
|
88
101
|
- ext/simpler_tiles/layer.h
|
@@ -90,15 +103,21 @@ files:
|
|
90
103
|
- ext/simpler_tiles/map.h
|
91
104
|
- ext/simpler_tiles/query.c
|
92
105
|
- ext/simpler_tiles/query.h
|
106
|
+
- ext/simpler_tiles/raster_layer.c
|
107
|
+
- ext/simpler_tiles/raster_layer.h
|
93
108
|
- ext/simpler_tiles/simpler_tiles.c
|
94
109
|
- ext/simpler_tiles/simpler_tiles.h
|
95
110
|
- ext/simpler_tiles/style.c
|
96
111
|
- ext/simpler_tiles/style.h
|
112
|
+
- ext/simpler_tiles/vector_layer.c
|
113
|
+
- ext/simpler_tiles/vector_layer.h
|
97
114
|
- index.erb
|
98
115
|
- index.html
|
99
116
|
- lib/simpler_tiles.rb
|
100
117
|
- lib/simpler_tiles/bounds.rb
|
101
118
|
- lib/simpler_tiles/layer.rb
|
119
|
+
- lib/simpler_tiles/layer/raster_layer.rb
|
120
|
+
- lib/simpler_tiles/layer/vector_layer.rb
|
102
121
|
- lib/simpler_tiles/map.rb
|
103
122
|
- lib/simpler_tiles/mixins/pp.rb
|
104
123
|
- lib/simpler_tiles/query.rb
|
data/ext/simpler_tiles/depend
DELETED
File without changes
|