Skip to content

Latest commit

 

History

History
165 lines (120 loc) · 5.2 KB

CHANGELOG.md

File metadata and controls

165 lines (120 loc) · 5.2 KB

1.1.0 (2022-11-30)

Features

1.0.0 (2022-11-28)

Features

  • npm: release for npm package. Updated docs as well (77cf652)

Original Changelog

v2.0.0

There are critical changes that touches to the MarkerClusterGroup API: 1. Support of marker object lat and lng keys are removed. 2. options property of MarkerClusterGroup removed. 3. Console deprecated warnings are removed. 4. Better handling on events. 5. Demo application completely rewritten and replaced with StoryBook.

v1.1.8

There are critical changes that touches to the MarkerClusterGroup API:

1. options property is deprecated (will be removed at v1.2.0).

Since now you don't need to use options prop to pass Leaflet.markercluster option into <MarkerClusterGroup />.

Just pass whatever option you need from All Leaflet.markercluster Options list to MarkerClusterGroup as prop.

For example:

// New API
<MarkerClusterGroup showCoverageOnHover={false} />

// How it was before 1.1.8
<MarkerClusterGroup options={{ showCoverageOnHover: false }} />

or:

const createClusterCustomIcon = function (cluster) {
  return L.divIcon({
    html: `<span>${cluster.getChildCount()}</span>`,
    className: 'marker-cluster-custom',
    iconSize: L.point(40, 40, true),
  });
}

// New API
<MarkerClusterGroup iconCreateFunction={createClusterCustomIcon} showCoverageOnHover={false} />

// How it was before 1.1.8
<MarkerClusterGroup options={{ iconCreateFunction: clusterCustomIcon, showCoverageOnHover: false }} />

2. Deprecated wrapperOptions property has been removed.

How to replace wrapperOptions old enableDefaultStyle | disableDefaultAnimation | removeDuplicates features:

  • enableDefaultStyle: to enable leaflet.markercluster default style for cluster, just import Markercluster styles:
@import '~react-leaflet-markercluster/dist/styles.min.css'; // sass
@import url('~react-leaflet-markercluster/dist/styles.min.css'); // css

require('react-leaflet-markercluster/dist/styles.min.css'); // inside .js file

or include CSS styles directly to the head of HTML file:

<link
  rel="stylesheet"
  href="https://unpkg.com/react-leaflet-markercluster/dist/styles.min.css"
/>
  • disableDefaultAnimation: to disable markers animation, set Leaflet.markercluster animate option to false:
<MarkerClusterGroup markers={markers} options={{ animate: false }} />
  • removeDuplicates: you could use our previous solution for markers filtering (before sending them to MarkerClusterGroup) as follows:
function removeMarkersWithSameCoordinates(markers) {
  // init filtered markers list with first marker from list
  const filteredMarkers = [markers[0]];

  markers.forEach((marker) => {
    if (!JSON.stringify(filteredMarkers).includes(JSON.stringify(marker))) {
      filteredMarkers.push(marker);
    }
  });

  return filteredMarkers;
}

// ...
render() {
  const filteredMarkers = removeMarkersWithSameCoordinates(this.props.markers);
  return (
    // ...
    <MarkerClusterGroup markers={filteredMarkers} />
    // ...
  )
}
// ...

3. Bug Fix

  • Dependencies Update
  • Demo-app: Update Panel props according to latest react-bootstrap specification
  • Remove requiring of deprecated-styles inside react-leaflet-markercluster.js plugin
  • Use react context store to access markers instead of cloning markers during their render
  • Deprecation warnings about MarkerClusterGroup options property
  • Update Demo-app with fresh examples

v1.1.7

1. marker object lat and lng keys are deprecated (will be removed at v1.2.0).

To set marker position, please use position key at marker object like:

const markers = [
  { position: [49.8397, 24.0297] },
  { position: [52.2297, 21.0122] },
  { position: [51.5074, -0.0901] },
];

position that is Leaflet.LatLng array or object, that could be declared like:

const markers = [
  { position: [49.8397, 24.0297] }, // [lat, lng]
  { position: { lat: 52.2297, lng: 21.0122 } },
  { position: { lat: 52.2297, lon: 21.0122 } },
];

2. wrapperOptions is fully deprecated and will not be used anymore (will be removed at v1.1.8).

3. Bug Fix

  • Check if map className was already added/changed when MarkerClusterGroup is mounting
  • Remove markers from map when MarkerClusterGroup received empty array in nextProps
  • Updated MarkerClusterGroup API. Deprecation warnings about wrapperOptions and marker lat and lng object keys.
  • React 16 peerDependency support
  • Updated documentation