- <%= blacklight_map_tag('blacklight-map') %>
-
- <%= javascript_tag "$('#blacklight-map').blacklight_leaflet_map(#{serialize_geojson});" %>
+ <%= render_index_map %>
diff --git a/app/views/catalog/_index_map.html.erb b/app/views/catalog/_index_map.html.erb
new file mode 100644
index 0000000..930ae36
--- /dev/null
+++ b/app/views/catalog/_index_map.html.erb
@@ -0,0 +1,7 @@
+<%= blacklight_map_tag('blacklight-index-map',
+ {data:{viewpoint: set_viewpoint(geojson_features),
+ searchcontrol: true,
+ catalogpath: catalog_index_path,
+ placenamefield: blacklight_config.view.maps.placename_field
+ }}) %>
+<%= javascript_tag "$('#blacklight-index-map').blacklight_leaflet_map(#{geojson_features});" %>
\ No newline at end of file
diff --git a/app/views/catalog/_index_maps.html.erb b/app/views/catalog/_index_maps.html.erb
deleted file mode 100644
index c96086e..0000000
--- a/app/views/catalog/_index_maps.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<% # the way each document will be viewed in the sidebar list -%>
-
+ <% if @document[blacklight_config.view.maps.geojson_field.to_sym] || @document[blacklight_config.view.maps.coordinates_field.to_sym] %>
+ <% geojson_features = serialize_geojson(@document) %>
+ <%= blacklight_map_tag('blacklight-show-map',
+ {data:{viewpoint: set_viewpoint(geojson_features),
+ initialzoom:blacklight_config.view.maps.show_initial_zoom,
+ singlemarkermode:false}}) %>
+ <%= javascript_tag "$('#blacklight-show-map').blacklight_leaflet_map(#{geojson_features});" %>
+ <% end %>
+
\ No newline at end of file
diff --git a/app/views/catalog/map.html.erb b/app/views/catalog/map.html.erb
new file mode 100644
index 0000000..931bf56
--- /dev/null
+++ b/app/views/catalog/map.html.erb
@@ -0,0 +1,8 @@
+
+
<%= t('blacklight.maps.title') %>
+
<%= t('blacklight.maps.leader') %>
+ <%= render 'search_results' %>
+
+
+<%# have to put this at the end so it overrides 'catalog/search_results' %>
+<% @page_title = t('blacklight.maps.title', :application_name => application_name) %>
\ No newline at end of file
diff --git a/blacklight-maps.gemspec b/blacklight-maps.gemspec
index ccaac0e..2d06df0 100644
--- a/blacklight-maps.gemspec
+++ b/blacklight-maps.gemspec
@@ -22,11 +22,10 @@ Gem::Specification.new do |spec|
spec.add_dependency "bootstrap-sass", "~> 3.0"
spec.add_dependency "leaflet-rails"
spec.add_dependency "leaflet-markercluster-rails"
- spec.add_dependency "leaflet-sidebar-rails", "~> 0.0.2"
spec.add_development_dependency "bundler", "~> 1.5"
spec.add_development_dependency "rake"
- spec.add_development_dependency "rspec-rails", "~> 2.9"
+ spec.add_development_dependency "rspec-rails", "~> 3.0"
spec.add_development_dependency "jettywrapper"
spec.add_development_dependency "engine_cart", "~> 0.4.0"
spec.add_development_dependency "capybara"
diff --git a/config/locales/blacklight-maps.en.yml b/config/locales/blacklight-maps.en.yml
index 1a387cd..24ea821 100644
--- a/config/locales/blacklight-maps.en.yml
+++ b/config/locales/blacklight-maps.en.yml
@@ -1,5 +1,21 @@
en:
blacklight:
+
+ maps:
+ interactions:
+ bbox_search: 'View items that intersect with this bounding box'
+ placename_search: 'View items from this location'
+ item: 'item'
+ point_search: 'View items from this location'
+ search_ctrl_cue: 'Search for all items within the current map window'
+ title: 'Map'
+ leader: 'Click on a marker to search for items from that location.'
+
search:
+ filters:
+ coordinates:
+ bbox: 'Bounding Box'
+ point: 'Coordinates'
view:
- maps: "Map"
\ No newline at end of file
+ maps: 'Map'
+
diff --git a/config/routes.rb b/config/routes.rb
index 353666f..9e18c75 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,4 +1,4 @@
-Blacklight::Maps::Engine.routes.draw do
-
+Rails.application.routes.draw do
+ get 'map', :to => 'catalog#map', :as => 'map'
end
diff --git a/docs/blacklight-maps_index-view.png b/docs/blacklight-maps_index-view.png
new file mode 100755
index 0000000..673b455
Binary files /dev/null and b/docs/blacklight-maps_index-view.png differ
diff --git a/docs/blacklight-maps_map-view.png b/docs/blacklight-maps_map-view.png
new file mode 100755
index 0000000..ee13c1f
Binary files /dev/null and b/docs/blacklight-maps_map-view.png differ
diff --git a/docs/blacklight-maps_search-control.png b/docs/blacklight-maps_search-control.png
new file mode 100755
index 0000000..76ce270
Binary files /dev/null and b/docs/blacklight-maps_search-control.png differ
diff --git a/docs/blacklight-maps_show-view.png b/docs/blacklight-maps_show-view.png
new file mode 100755
index 0000000..151e431
Binary files /dev/null and b/docs/blacklight-maps_show-view.png differ
diff --git a/docs/map-sidebar.png b/docs/map-sidebar.png
deleted file mode 100644
index ca14ac9..0000000
Binary files a/docs/map-sidebar.png and /dev/null differ
diff --git a/docs/map-view.png b/docs/map-view.png
deleted file mode 100644
index cfe8f4b..0000000
Binary files a/docs/map-view.png and /dev/null differ
diff --git a/lib/blacklight/maps.rb b/lib/blacklight/maps.rb
index a6a9163..0c41610 100644
--- a/lib/blacklight/maps.rb
+++ b/lib/blacklight/maps.rb
@@ -2,8 +2,24 @@
module Blacklight
module Maps
+ require 'blacklight/maps/controller_override'
+ require 'blacklight/maps/render_constraints_override'
require 'blacklight/maps/engine'
require 'blacklight/maps/export'
require 'blacklight/maps/geometry'
+
+ def self.inject!
+ CatalogController.send(:include, BlacklightMaps::ControllerOverride)
+ CatalogController.send(:include, BlacklightMaps::RenderConstraintsOverride)
+ CatalogController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
+ CatalogController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
+
+ # inject into SearchHistory and SavedSearches so spatial queries display properly
+ SearchHistoryController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
+ SearchHistoryController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
+ SavedSearchesController.send(:helper, BlacklightMaps::RenderConstraintsOverride) unless
+ SavedSearchesController.helpers.is_a?(BlacklightMaps::RenderConstraintsOverride)
+ end
+
end
end
diff --git a/lib/blacklight/maps/controller_override.rb b/lib/blacklight/maps/controller_override.rb
new file mode 100644
index 0000000..fa131f2
--- /dev/null
+++ b/lib/blacklight/maps/controller_override.rb
@@ -0,0 +1,33 @@
+module BlacklightMaps
+ module ControllerOverride
+ extend ActiveSupport::Concern
+ included do
+ solr_search_params_logic << :add_spatial_search_to_solr
+ end
+
+ def map
+ (@response, @document_list) = get_search_results
+ params[:view] = 'maps'
+ respond_to do |format|
+ format.html
+ end
+ end
+
+ # add spatial search params to solr
+ def add_spatial_search_to_solr(solr_parameters, user_parameters)
+ if user_parameters[:spatial_search_type] && user_parameters[:coordinates]
+ solr_parameters[:fq] ||= []
+ if user_parameters[:spatial_search_type] == 'bbox'
+ solr_parameters[:fq] << blacklight_config.view.maps.coordinates_field + ":" + user_parameters[:coordinates]
+ else
+ solr_parameters[:fq] << "{!geofilt sfield=#{blacklight_config.view.maps.coordinates_field}}"
+ solr_parameters[:pt] = user_parameters[:coordinates]
+ solr_parameters[:d] = blacklight_config.view.maps.spatial_query_dist
+ end
+ end
+ solr_parameters
+ end
+
+ end
+
+end
\ No newline at end of file
diff --git a/lib/blacklight/maps/engine.rb b/lib/blacklight/maps/engine.rb
index 0702d0c..322c108 100644
--- a/lib/blacklight/maps/engine.rb
+++ b/lib/blacklight/maps/engine.rb
@@ -1,25 +1,33 @@
require 'blacklight'
require 'leaflet-rails'
require 'leaflet-markercluster-rails'
-require 'leaflet-sidebar-rails'
module Blacklight
module Maps
class Engine < Rails::Engine
# Set some default configurations
- Blacklight::Configuration.default_values[:view].maps.type = 'bbox'
- Blacklight::Configuration.default_values[:view].maps.bbox_field = 'place_bbox'
- Blacklight::Configuration.default_values[:view].maps.placename_coord_field = 'placename_coords'
+ Blacklight::Configuration.default_values[:view].maps.geojson_field = "geojson"
+ Blacklight::Configuration.default_values[:view].maps.placename_property = "placename"
+ Blacklight::Configuration.default_values[:view].maps.coordinates_field = "coordinates"
+ Blacklight::Configuration.default_values[:view].maps.search_mode = "placename" # or 'coordinates'
+ Blacklight::Configuration.default_values[:view].maps.spatial_query_dist = 0.5
+ Blacklight::Configuration.default_values[:view].maps.placename_field = "placename_field"
+ Blacklight::Configuration.default_values[:view].maps.coordinates_facet_field = "coordinates_facet_field"
+ Blacklight::Configuration.default_values[:view].maps.facet_mode = "geojson" # or 'coordinates'
Blacklight::Configuration.default_values[:view].maps.tileurl = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
Blacklight::Configuration.default_values[:view].maps.mapattribution = 'Map data ©