simpler-tiles 0.2.0 → 0.2.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/.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
|