ember-leaflet-heatmap

Ember Leaflet Addon to add Heatmap.js support.

Usage no npm install needed!

<script type="module">
  import emberLeafletHeatmap from 'https://cdn.skypack.dev/ember-leaflet-heatmap';
</script>

README

Ember Leaflet Heatmap

Build Status Ember Observer Score Download count all time npm

Offers Heatmap.js functionality for Ember-Leaflet, an Ember Addon for Leaflet interactive maps.

Installation

ember install ember-leaflet-heatmap

Usage

Setup

To setup the heatmap, simply add the heatmap-layer component and pass in an Ember Array of data. By default, Ember Leaflet Heatmap will grab lat, lng and value properties from each item in your array. It will listen to all array changes and automatically update the heatmap.

{{#leaflet-map lat=lat lng=lng zoom=zoom}}

  {{tile-layer url="http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png"}}

  {{heatmap-layer data=data options=options}}

{{/leaflet-map}}

If your data doesn't have lat, lng or value keys, you can set the correct property key references like so:

{{heatmap-layer data=data latField="latitude" lngField="longitude" valueField="risk"}}

Options

All Heatmap.js options can be passed into the component, either as individual values or in an options hash. Some examples are below:

{{heatmap-layer data=data
                backgroundColor="#FFFFFF"
                maxOpacity=0.5
                blur=0.85}}

Contextual Component support

Ember-Leaflet now makes use of contextual components in Ember. However, only the built in child components are defined out-of-the-box:

{{#leaflet-map lat=lat lng=lng zoom=zoom as |layers|}}
  <!-- layers.heat-map undefined -->
{{/leaflet-map}}

To use Ember Leaflet Heatmap as a contextual component, extend the base leaflet-map component into a custom component of your own.

// your-map.js
import LeafletMap from 'ember-leaflet/components/leaflet-map';

export default LeafletMap.extend({
  // Add options here
});

Next, override the template with the components you need. For a full list of built-in components, click here.

{{yield (hash
  heatmap=(component "heatmap-layer" parentComponent=this)
)}}

Then, you can use it in your templates like so:

{{#your-map lat=lat lng=lng zoom=zoom as |layers|}}

  {{layers.heatmap data=data options=options}}

{{/your-map}}

Running

  • ember server
  • Visit your app at http://localhost:4200.

Running Tests

  • yarn test (Runs ember try:testall to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://ember-cli.com/.