blacklight_heatmaps 0.1.0 → 0.2.0
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/README.md +14 -0
- data/app/models/concerns/blacklight_heatmaps/geometry_solr_document.rb +12 -2
- data/lib/blacklight_heatmaps/version.rb +1 -1
- data/spec/features/index_page_map_spec.rb +1 -1
- data/spec/features/show_page_map_spec.rb +5 -2
- data/spec/fixtures/null_island.geojson +36 -0
- data/spec/models/concerns/blacklight_heatmaps/geometry_solr_document_spec.rb +7 -7
- data/spec/spec_helper.rb +2 -0
- data/spec/support/fixture_data.rb +9 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3ccce3da873d326189a04751821096659975b08
|
4
|
+
data.tar.gz: 4bdd563cab7c22e9788d528bac24ee1521722879
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acc8026a66f6ff89f5a945c69b0712ba1039a69d72a3e743d87b4031bd1df93ed1e9f2f12bdc60ca4840217996fddc66944439c5904b99c92d410a0cf2c3c5bb
|
7
|
+
data.tar.gz: 85681826d5992b5d02ea40566f27140530f17feaa81da8e5c6ef7c8e8320310b0ae9381d663acb2ced69cf83033c70ec04ceffdc463c9d9e68c6e38146ac4fb0
|
data/README.md
CHANGED
@@ -40,6 +40,20 @@ BlacklightHeatmaps expects your data to be indexed as a [Spatial Recursive Prefi
|
|
40
40
|
- `x y` Syntax. example: "-121.631609 36.688128"
|
41
41
|
- CQL ENVELOPE Syntax (`minX, maxX, maxY, minY`). example: "ENVELOPE(122.934585571, 153.987060547, 45.522888184, 20.422889709)"
|
42
42
|
|
43
|
+
BlacklightHeatmaps also works with multivalued Spatial Recursive Prefix Tree types.
|
44
|
+
|
45
|
+
```json
|
46
|
+
{
|
47
|
+
"id": 1,
|
48
|
+
"name": "Null Island",
|
49
|
+
"geo_srpt": [
|
50
|
+
"ENVELOPE(-0.0005, 0.000379, 0.000309, -0.000282)", "0 0"
|
51
|
+
]
|
52
|
+
}
|
53
|
+
```
|
54
|
+
|
55
|
+
Solr does not seem to be able to handle multivalued points without an accompanying geometry.
|
56
|
+
|
43
57
|
Additional formats could be added by extending `BlacklightHeatmaps::GeometryParser`
|
44
58
|
|
45
59
|
### Customizing the basemap
|
@@ -4,8 +4,18 @@ module BlacklightHeatmaps
|
|
4
4
|
module GeometrySolrDocument
|
5
5
|
def to_geojson(blacklight_config = nil)
|
6
6
|
return unless blacklight_config.try(:geometry_field) && fetch(blacklight_config.geometry_field, nil)
|
7
|
-
|
8
|
-
|
7
|
+
{
|
8
|
+
type: 'FeatureCollection',
|
9
|
+
features: Array(fetch(blacklight_config.geometry_field)).map do |geometry|
|
10
|
+
{
|
11
|
+
type: 'Feature',
|
12
|
+
geometry: JSON.parse(
|
13
|
+
BlacklightHeatmaps::GeometryParser.parse(geometry).to_geojson
|
14
|
+
),
|
15
|
+
properties: {}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
}.to_json
|
9
19
|
end
|
10
20
|
end
|
11
21
|
end
|
@@ -12,7 +12,7 @@ feature 'Index page map', js: true do
|
|
12
12
|
expect(page).to have_css 'ul.pagination li.disabled', count: 6
|
13
13
|
|
14
14
|
# Document counts
|
15
|
-
expect(page).to have_css '.page_links', text: '
|
15
|
+
expect(page).to have_css '.page_links', text: '18 items found'
|
16
16
|
|
17
17
|
expect(page).to have_css '#index-map-sidebar', visible: false
|
18
18
|
page.first('svg g path').click
|
@@ -8,8 +8,11 @@ feature 'Show map map', js: true do
|
|
8
8
|
expect(page).to have_css 'img[src*="light_all/4/11/5.png"]'
|
9
9
|
expect(page).to have_css 'svg g path'
|
10
10
|
end
|
11
|
-
it 'renders a point type' do
|
11
|
+
it 'renders a point type and a polygon' do
|
12
12
|
visit solr_document_path '34860108'
|
13
|
-
|
13
|
+
within '.leaflet-container' do
|
14
|
+
expect(page).to have_css 'svg g path'
|
15
|
+
expect(page).to have_css '.leaflet-marker-icon'
|
16
|
+
end
|
14
17
|
end
|
15
18
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"type": "FeatureCollection",
|
3
|
+
"features": [
|
4
|
+
{
|
5
|
+
"type": "Feature",
|
6
|
+
"geometry": {
|
7
|
+
"type": "Polygon",
|
8
|
+
"coordinates": [
|
9
|
+
[
|
10
|
+
[
|
11
|
+
-0.0005,
|
12
|
+
-0.000282
|
13
|
+
],
|
14
|
+
[
|
15
|
+
-0.0005,
|
16
|
+
0.000309
|
17
|
+
],
|
18
|
+
[
|
19
|
+
0.000379,
|
20
|
+
0.000309
|
21
|
+
],
|
22
|
+
[
|
23
|
+
0.000379,
|
24
|
+
-0.000282
|
25
|
+
],
|
26
|
+
[
|
27
|
+
-0.0005,
|
28
|
+
-0.000282
|
29
|
+
]
|
30
|
+
]
|
31
|
+
]
|
32
|
+
},
|
33
|
+
"properties": {}
|
34
|
+
}
|
35
|
+
]
|
36
|
+
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe BlacklightHeatmaps::GeometrySolrDocument do
|
3
|
+
describe BlacklightHeatmaps::GeometrySolrDocument, :include_fixtures do
|
4
4
|
subject { SolrDocument.new(fields).to_geojson(blacklight_config) }
|
5
5
|
|
6
6
|
context 'when configured' do
|
7
|
-
let(:fields) { { some_field: 'ENVELOPE(
|
7
|
+
let(:fields) { { some_field: 'ENVELOPE(-0.0005, 0.000379, 0.000309, -0.000282)' } }
|
8
8
|
let(:blacklight_config) { double('BlacklightConfig', geometry_field: :some_field) }
|
9
|
-
it 'returns the data from the document as
|
10
|
-
expect(subject).to eq
|
9
|
+
it 'returns the data from the document as GeoJson FeatureCollection' do
|
10
|
+
expect(subject).to eq null_island.gsub(/\s/, '')
|
11
11
|
end
|
12
12
|
end
|
13
13
|
context 'when not configured' do
|
@@ -18,10 +18,10 @@ describe BlacklightHeatmaps::GeometrySolrDocument do
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
context 'when the document has the field' do
|
21
|
-
let(:fields) { { some_field: 'ENVELOPE(
|
21
|
+
let(:fields) { { some_field: 'ENVELOPE(-0.0005, 0.000379, 0.000309, -0.000282)' } }
|
22
22
|
let(:blacklight_config) { double('BlacklightConfig', geometry_field: :some_field) }
|
23
|
-
it 'returns the data from the document as
|
24
|
-
expect(subject).to eq
|
23
|
+
it 'returns the data from the document as GeoJson FeatureCollection' do
|
24
|
+
expect(subject).to eq null_island.gsub(/\s/, '')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
context 'when the document does not have the field' do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight_heatmaps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jack Reed
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- spec/features/configurable_basemap_spec.rb
|
196
196
|
- spec/features/index_page_map_spec.rb
|
197
197
|
- spec/features/show_page_map_spec.rb
|
198
|
+
- spec/fixtures/null_island.geojson
|
198
199
|
- spec/helpers/blacklight/maps_helper_spec.rb
|
199
200
|
- spec/models/concerns/blacklight_heatmaps/bounding_box_spec.rb
|
200
201
|
- spec/models/concerns/blacklight_heatmaps/geometry_parser_spec.rb
|
@@ -202,6 +203,7 @@ files:
|
|
202
203
|
- spec/models/concerns/blacklight_heatmaps/point_spec.rb
|
203
204
|
- spec/models/concerns/blacklight_heatmaps/solr_facet_heatmap_behavior_spec.rb
|
204
205
|
- spec/spec_helper.rb
|
206
|
+
- spec/support/fixture_data.rb
|
205
207
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
206
208
|
- spec/views/catalog/_document_heatmaps.html.erb_spec.rb
|
207
209
|
- spec/views/catalog/_show_leaflet_map_default.html.erb_spec.rb
|
@@ -235,6 +237,7 @@ test_files:
|
|
235
237
|
- spec/features/configurable_basemap_spec.rb
|
236
238
|
- spec/features/index_page_map_spec.rb
|
237
239
|
- spec/features/show_page_map_spec.rb
|
240
|
+
- spec/fixtures/null_island.geojson
|
238
241
|
- spec/helpers/blacklight/maps_helper_spec.rb
|
239
242
|
- spec/models/concerns/blacklight_heatmaps/bounding_box_spec.rb
|
240
243
|
- spec/models/concerns/blacklight_heatmaps/geometry_parser_spec.rb
|
@@ -242,6 +245,7 @@ test_files:
|
|
242
245
|
- spec/models/concerns/blacklight_heatmaps/point_spec.rb
|
243
246
|
- spec/models/concerns/blacklight_heatmaps/solr_facet_heatmap_behavior_spec.rb
|
244
247
|
- spec/spec_helper.rb
|
248
|
+
- spec/support/fixture_data.rb
|
245
249
|
- spec/test_app_templates/lib/generators/test_app_generator.rb
|
246
250
|
- spec/views/catalog/_document_heatmaps.html.erb_spec.rb
|
247
251
|
- spec/views/catalog/_show_leaflet_map_default.html.erb_spec.rb
|