leaflet_helper 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5650a8adc68441642df6c25ca2b01dba2a7d3b27
4
- data.tar.gz: 1cdd5e5a22646db9406608f8e29895e37106c342
3
+ metadata.gz: 6f0a6f20aeb1a990f29061044ced274fae566267
4
+ data.tar.gz: 538a63485b9c432f7d8d0374f3bd7250e25d199d
5
5
  SHA512:
6
- metadata.gz: f6fba4557327c9c3302c3e00fc781b5794673f80ec21dc3e69ec1dbf81413038c572dd6c5753343054e4eaba7b72a25ab2bbc12262f6da4b296fbd9ef7200ab0
7
- data.tar.gz: 2e50c27dc53be78a08a08f8304895cc17cd1bd2bac6377cc7dfd3b5f1baa53059193ebfae48f79460150e6bd20bd39606bb197a007f60f0423e5d5b596d78c1f
6
+ metadata.gz: 400b40208c8f2219f6b921a93c4b9183bd6b8d5728c4b61f1dfee65efc50300677e5e02ae1657e42a97799d08c6ecc9a387921008fa8a35349ced75d3dffb4d9
7
+ data.tar.gz: 4ae029f4525beed6e476fe921131be854d6dfd8c72f3904d0faddf5ac2a6f47ce715124fad53ed5b1b56ddd9e6b342bf91a299b477bf0be11a5354226cbf427b
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # LeafletHelper
2
2
 
3
- I couldn't find any libraries that were ruby-centric geospatial map knowledgable that were not
4
- specifically constructed for the rails framework. I wanted something more generic that could be used
5
- with any framework.
3
+ I couldn't find any libraries that were ruby-centric geospatial map knowledgable that were
4
+ framework agnostic.
5
+
6
+ Look at my experiments/maps repo to see how leafelet_helpers is used with a sinatra-based web app.
6
7
 
7
8
  ## Installation
8
9
 
@@ -22,7 +23,11 @@ Or install it yourself as:
22
23
 
23
24
  ## Usage
24
25
 
25
- TODO: Write usage instructions here
26
+ Look at https://github.com/MadBomber/experiments/tree/master/maps
27
+
28
+ The views/layout.haml and views/index.haml show how to use the leaflet_helper. Of course you
29
+ have to require the gem in the main app.rb file in order for it to be available in the views. This
30
+ sinatra app also shows how to use markers on top of the main map layers.
26
31
 
27
32
  ## Development
28
33
 
@@ -30,7 +35,7 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
30
35
 
31
36
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
37
 
33
- Of if that doesn't work try something.
38
+ Of course if that doesn't work try something else. I'm not any good a javascript; if you are, send me some pull requests to improve my naive notions.
34
39
 
35
40
  ## Contributing
36
41
 
@@ -5,7 +5,7 @@ require 'leaflet_helper/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "leaflet_helper"
8
- spec.version = '0.0.3'
8
+ spec.version = '0.0.4'
9
9
  spec.authors = ["Dewayne VanHoozer"]
10
10
  spec.email = ["dvanhoozer@gmail.com"]
11
11
 
@@ -3,25 +3,24 @@
3
3
  module LeafletHelper
4
4
  class L
5
5
  VERSION = '0.7.3' # of leaflet.js
6
+
7
+ # TODO: Why are these desired?
6
8
  @@map_ids = [] # the div ids of all of the maps
7
9
  @@markers = Hash.new([]) # An array of markers for each map id
8
- @@initialized = false
9
10
 
10
11
  class << self
11
12
 
12
13
  # intended for the the head section
13
14
  def init(options={})
14
15
  o = {
15
- markers: false
16
- }.merge(options)
17
-
18
- # raise RuntimeError, 'Already initialized' if initialized?
19
- initialized!
16
+ author: "@madbomber"
17
+ }.merge(options)
20
18
 
21
19
  leaflet_script = <<~EOS
22
20
  <script type="text/javascript" src="//cdn.leafletjs.com/leaflet-#{VERSION}/leaflet.js"></script>
23
21
  <link rel="stylesheet" href="//cdn.leafletjs.com/leaflet-#{VERSION}/leaflet.css">
24
22
 
23
+ // SMELL: I'm not sure this script section is needed.
25
24
  <script>
26
25
 
27
26
  // set up AJAX request
@@ -48,8 +47,10 @@ module LeafletHelper
48
47
 
49
48
 
50
49
  # intended for the body of a web page
51
- # hope to support multiple maps on a page
50
+ # can support multiple maps on a page; each
51
+ # map must have a unique id
52
52
  def place_map_here(id='map', options={})
53
+ # SMELL: This may happen every time the page is refreshed
53
54
  @@map_ids << id
54
55
  o = {
55
56
  style: "width: 800px; height: 400px"
@@ -61,7 +62,7 @@ module LeafletHelper
61
62
  return <<~EOS
62
63
  <div id="#{id}"#{div_options}></div>
63
64
  EOS
64
- end # def map(id='map')
65
+ end # def place_map_here(id='map')
65
66
 
66
67
 
67
68
  # Intended for the body at the bottom
@@ -126,9 +127,9 @@ module LeafletHelper
126
127
  end # def add_openstreetmap_layer(id="map", options={})
127
128
 
128
129
 
130
+ # Allows for the generation of markers on top of the map
129
131
  def add_support_for_markers(id="map", options={})
130
132
  o = {
131
- markers: true,
132
133
  route: "#{id}/markers"
133
134
  }.merge(options)
134
135
 
@@ -143,26 +144,27 @@ module LeafletHelper
143
144
  function on#{id}Move(e) { getMarkersFor#{id}(); }
144
145
 
145
146
 
146
-
147
- // request the marker info with AJAX for the current bounds
147
+ // request the marker info for the current bounds
148
148
  function getMarkersFor#{id}() { // was: askForPlots
149
149
 
150
+ // TODO: Currently the displayed map bounds is not being used
151
+ // to get the new set of markers. This could be ugly for
152
+ // lots of markers. Need a way to insert the bounds into the route.
150
153
  var bounds = #{var_name}.getBounds();
151
154
  var minll = bounds.getSouthWest();
152
155
  var maxll = bounds.getNorthEast();
153
156
 
154
- // FIXME: msg is the URL from which to get markers
155
- // var msg = 'leaflet/findbybbox.cgi?format=leaflet&bbox='+minll.lng+','+minll.lat+','+maxll.lng+','+maxll.lat;
156
-
157
- var msg = '#{o[:route]}';
157
+ // this is the place from which the markers JSON array is obtained
158
+ var route = '#{o[:route]}';
158
159
 
159
160
  ajaxRequest.onreadystatechange = stateChangedFor#{id};
160
- ajaxRequest.open('GET', msg, true);
161
+ ajaxRequest.open('GET', route, true);
161
162
  ajaxRequest.send(null);
162
163
  }
163
164
 
164
165
 
165
- function stateChangedFor#{id}() { // was: stateChanged
166
+ // The map changed so get new markers
167
+ function stateChangedFor#{id}() {
166
168
 
167
169
  // if AJAX returned a list of markers, add them to the map
168
170
  if (ajaxRequest.readyState == 4) {
@@ -189,7 +191,8 @@ module LeafletHelper
189
191
  } // function stateChangedFor#{id}()
190
192
 
191
193
 
192
- function removeMarkersFrom#{id}() { // was: removeMarkers
194
+ // remove all of the markers from the map
195
+ function removeMarkersFrom#{id}() {
193
196
  for (i=0; i<plotlayersFor#{id}.length; i++) {
194
197
  #{var_name}.removeLayer(plotlayersFor#{id}[i]);
195
198
  }
@@ -203,7 +206,8 @@ module LeafletHelper
203
206
  end # def add_support_for_markers(map_id, map_options)
204
207
 
205
208
 
206
- # TODO: extrach marker methods into a Marker class
209
+ # Can't think of a way to use add_marker and delete_marker.
210
+ # They may not be necessary.
207
211
  def add_marker(marker={}, map_id='map')
208
212
  # TODO: add_marker
209
213
  end
@@ -214,6 +218,7 @@ module LeafletHelper
214
218
  end
215
219
 
216
220
 
221
+ # The "var name" is the Javascript container that has the map
217
222
  def get_var_name(id="map")
218
223
  return "lh_#{id}"
219
224
  end
@@ -224,19 +229,6 @@ module LeafletHelper
224
229
  end
225
230
 
226
231
 
227
- private
228
-
229
- def initialized!
230
- @@initialized = true
231
- end
232
-
233
-
234
- def initialized?
235
- @@initialized
236
- end
237
-
238
-
239
-
240
232
  end # class << self
241
233
  end # class L
242
234
  end # module LeafletHelper
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leaflet_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dewayne VanHoozer