0.3.0 • Published 7 years ago

leaflet-solr-heatmap v0.3.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

Leaflet-Solr-Heatmap

A Leaflet plugin that visualizes heatmap facets from Solr 5.x

Using with Leaflet

// Create a SolrHeatmap layer and add it to the map
var solr = L.solrHeatmap('http://127.0.0.1:8983/solr/gettingstarted', {
  // Solr field with geospatial data (should be type Spatial Recursive Prefix Tree)
  field: 'loc_srpt',

  // Set type of visualization. Allowed types: 'geojsonGrid', 'clusters'
  // Note: 'clusters' requires LeafletMarkerClusterer
  type: 'geojsonGrid'
}).addTo(map);
OptionTypeDefaultDescription
fieldStringnullRequired. Solr field with geospatial data (should be type Spatial Recursive Prefix Tree)
typeString'geojsonGrid'Type of visualization. Accepts geojsonGrid, clusters and heatmap
solrRequestHandlerString'select'Request handler for Solr
colorsArray['#f1eef6', '#d7b5d8', '#df65b0', '#dd1c77', '#980043']Colors for heatmap. Array can be of any length.
maxSampleSizeNumberNumber.MAX_SAFE_INTEGERFor improved performance, run Jenks classification on only a sample of Solr counts. Default value turns off sampling. Typical value is 400.
queryAdapterStringdefaultA query adapter used to connect to a Solr interface. Useful for querying applications that may proxy through Solr.
queryRadiusNumber40Radius (in pixels) used for querying nearby data

Events

L.SolrHeatmap layers fire all of the typical events from Leaflet. Additional events include:

EventDataDescription
dataAddedObjectfires when data is added to the map. Returns an object which is the JSON response from the Solr server

Running locally

Install Dependencies

# Install JavaScript depencencies
$ npm install

# Install local solr
$ gem install solr_wrapper

Run Solr

$ solr_wrapper

Index fixture data

$ npm run index

Start local server

npm run start

View the example at http://127.0.0.1:8000/example/

Adapting to different API interfaces

Leaflet Solr Heatmap uses an abstracted query adapater, that can be used to query API's besides the default Solr API. This has been used in Blacklight Heatmaps. Adapters can be added to the L.SolrHeatmapQueryAdapters object and then selected using the L.solrHeatmap options instantiation. Query adapters need to implment the following methods:

Method | Returns | Purpose ajaxOptions | Object | Merged options object that defines $.ajax url and settings. responseFormatter | Object | A way to access a custom API resposne formatter. Should return an Object that behaves as the Solr Facet Heatmap JSON response (or just passes it through).