Create and manage clusters for large amounts of markers

Overview

Google Maps JavaScript MarkerClusterer

npm Build Release codecov GitHub contributors semantic-release

Description

The library creates and manages per-zoom-level clusters for large amounts of markers.

screenshot

See the history section and migration section for how this library relates to @google/markerclusterer and @googlemaps/markerclustererplus.

Install

Available via npm as the package @googlemaps/markerclusterer.

npm i @googlemaps/markerclusterer

Alternativly you may add the umd package directly to the html document using the unpkg link.

<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>

When adding via unpkg, the MarkerClusterer can be accessed at markerclusterer.MarkerClusterer.

TypeScript

This library uses the official TypeScript typings for Google Maps Platform, @types/google.maps.

npm i -D @types/google.maps

Documentation

The reference documentation is generated from the TypeScript definitions.

Examples

import { MarkerClusterer } from "@googlemaps/markerclusterer";

// use default algorithm and renderer
const markerCluster = new MarkerClusterer({ map, markers });

View the package in action:

  • Algorithm Comparisons - This example demonstrates the different algorithms. Please note that spacing and many other options can be changed for each algorithm.

Screen Shot 2021-09-28 at 1 43 40 PM

  • Renderer Usage - This example demonstrates different renderers similar to the image below.

Screen Shot 2021-09-28 at 1 41 06 PM

History

This library has a heritage in @google/markerclusterer and @googlemaps/markerclustererplus, originally made available on code.google.com and then transferred to GitHub at https://github.com/googlemaps/v3-utility-library. The following is an approximate timeline.

Migration

The API of @googlemaps/markerclustererplus has changed in a number of ways from @googlemaps/markerclustererplus.

  • The MarkerClusterer class now accepts an algorithm and renderer parameter to allow for more flexibility. The interface looks like the following:
{
    algorithm?: Algorithm;
    map?: google.maps.Map;
    markers?: google.maps.Marker[];
    renderer?: Renderer;
    onClusterClick?: onClusterClickHandler;
  }
  • The MarkerClusterer accepts a single options argument instead of positional parameters.
  • The traditional GridAlgorithm is still supported, but is not the default. The default is supercluster which uses k-d trees for improved performance.
  • Styling of clusters has been simplifed and moved to the renderer interface.
  • The MarkerClusterer class is still an instance of google.maps.OverlayView, but uses google.maps.Markers instead of google.maps.Overlay to render the clusters. This solves issues related to the usage of map panes and click handlers.
  • @googlemaps/markerclusterer supports Marker and Map a11y improvements.
Comments
  • chore(deps-dev): bump selenium-webdriver from 4.1.1 to 4.1.2

    chore(deps-dev): bump selenium-webdriver from 4.1.1 to 4.1.2

    Bumps selenium-webdriver from 4.1.1 to 4.1.2.

    Commits
    Maintainer changes

    This version was pushed to npm by diemol, a new releaser for selenium-webdriver since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    automerge dependencies merge 
    opened by dependabot[bot] 31
  • chore(deps-dev): bump chromedriver from 100.0.0 to 101.0.0

    chore(deps-dev): bump chromedriver from 100.0.0 to 101.0.0

    Bumps chromedriver from 100.0.0 to 101.0.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    automerge dependencies merge released 
    opened by dependabot[bot] 7
  • chore(deps-dev): bump typescript from 4.6.3 to 4.6.4

    chore(deps-dev): bump typescript from 4.6.3 to 4.6.4

    Bumps typescript from 4.6.3 to 4.6.4.

    Release notes

    Sourced from typescript's releases.

    TypeScript 4.6.4

    This release includes a bug fix for text formatting on certain ranges, which was impacting Visual Studio users.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    automerge dependencies merge released 
    opened by dependabot[bot] 7
  • chore(deps-dev): bump @babel/preset-env from 7.16.11 to 7.17.10

    chore(deps-dev): bump @babel/preset-env from 7.16.11 to 7.17.10

    Bumps @babel/preset-env from 7.16.11 to 7.17.10.

    Release notes

    Sourced from @​babel/preset-env's releases.

    v7.17.10 (2022-04-29)

    Thanks @​Abreto, @​Andoryuuta, @​apeltop, @​JohnDaly, and @​wjw99830 for your first PRs!

    :bug: Bug Fix

    • babel-cli, babel-core, babel-generator, babel-helper-transform-fixture-test-runner

    :nail_care: Polish

    • babel-cli, babel-core, babel-generator, babel-helper-fixtures, babel-helper-transform-fixture-test-runner
    • babel-plugin-proposal-pipeline-operator, babel-traverse

    :house: Internal

    :running_woman: Performance

    • babel-cli, babel-core, babel-generator

    Committers: 12

    v7.17.9 (2022-04-06)

    Thanks @​CommanderRoot, @​fargito and @​swandir for your first PRs!

    :bug: Bug Fix

    ... (truncated)

    Changelog

    Sourced from @​babel/preset-env's changelog.

    v7.17.10 (2022-04-29)

    :bug: Bug Fix

    • babel-cli, babel-core, babel-generator, babel-helper-transform-fixture-test-runner

    :nail_care: Polish

    • babel-cli, babel-core, babel-generator, babel-helper-fixtures, babel-helper-transform-fixture-test-runner
    • babel-plugin-proposal-pipeline-operator, babel-traverse

    :house: Internal

    :running_woman: Performance

    • babel-cli, babel-core, babel-generator

    v7.17.9 (2022-04-06)

    :bug: Bug Fix

    • babel-parser, babel-standalone
    • babel-traverse
    • babel-plugin-proposal-decorators
    • babel-parser
    • babel-generator, babel-parser
    • babel-plugin-transform-classes, babel-plugin-transform-modules-commonjs, babel-preset-env
    • babel-helper-create-class-features-plugin, babel-plugin-proposal-class-properties

    :nail_care: Polish

    :memo: Documentation

    :house: Internal

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    automerge dependencies merge released 
    opened by dependabot[bot] 7
  • mouseover events for clusters

    mouseover events for clusters

    Hi. There does not seem to be a way to attach events other than click to clusters. What I want is to show an infobox or similar listing the places of the markers in the cluster the mouse is currently hovering. I do not want to hijack the click event, that should work as intended. Edit: But it would make sense if the user could see the contents of each cluster without having to click in and then zoom out of each of them. In my case there are quite a few clusters...

    But as far as I can tell there is no support for mouseover events for clusters. Stackoverflow threads on the subject seems to be years old and outdated, and suggestions found there and elsewhere does not work for me.

    If there is a way, I'd be grateful to know, and if not, maybe this is a sensible addition to the library.

    Geir :)

    type: feature request triage me 
    opened by GeirFjaerli 6
  • chore(deps-dev): bump core-js from 3.22.2 to 3.22.4

    chore(deps-dev): bump core-js from 3.22.2 to 3.22.4

    Bumps core-js from 3.22.2 to 3.22.4.

    Changelog

    Sourced from core-js's changelog.

    3.22.4 - 2022.05.03
    • Ensured proper .length of polyfilled functions even in compressed code (excepting some ancient engines)
    • Ensured proper .name of polyfilled accessors (excepting some ancient engines)
    • Ensured proper source / ToString conversion of polyfilled accessors
    • Actualized Rhino compat data
    • Refactoring
    3.22.3 - 2022.04.28
    • Added a fix for FF99+ Array.prototype.includes broken on sparse arrays
    Commits
    • 6ba79a5 3.22.4
    • 14b2d5e missed nbsp
    • 4c6e83c integrate compat table to browser runner of compat data tests
    • 47f8920 take into account splitted modules in compat data result diff
    • efa5631 reuse the list of ignored in compat data modules, provide some additional dat...
    • e591ab7 ignore splitted setImmediate modules in IE -> Edge compat data mapping
    • 01ea350 improve docs
    • ae61bb3 improve docs
    • 928b853 add some docs
    • c0bf1d6 inherit only ES Deno data, just in case
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    automerge dependencies merge 
    opened by dependabot[bot] 6
  • Performance issues while zooming in

    Performance issues while zooming in

    Heyy @jpoehnelt,

    I have been experiencing performance issues with the new version of the marker clusterer (1.0.17). I have a map with about 3500 markers and before we've been using an old version of markerclustererplus. I don't know the version as the version used is a .js file. The old clusterer was configured with the following settings:

    const markerCluster = new MarkerClusterer(map, [], { maxZoom: 15, minimumClusterSize: 5, });

    This gives a fairly smooth experience. Now we upgraded to the new clusterer and any algorithm has a pretty big performance impact. We're using the following settings:

    const markerClusterer = new MarkerClusterer({ map: experienceMap, algorithm: new SuperClusterAlgorithm({ maxZoom: 15, minPoints: 5, radius: 60 }), });

    There are no other event listeners on the map or on the markers. No custom icons or anything. Just a marker with a position and they're added to the map. Loading the initial makers is no problem and only takes about 15ms on an AMD 5900x with RTX 3070ti and 64gb ram. The problem begins when zooming in. It seems there is something blocking the main thread and as a result it all slows down and basically freezes. We've noticed this problem happening on Chrome, Edge and Firefox. We also tried the demo site and we experience the same performance problems to a lesser extent. After debugging we found out it causes in the reset() function of the MarkerClusterer class on the line with this.clusters.forEach((cluster) => cluster.delete()). The algorithm takes 8ms with 3500 markers but that line takes over 1700ms. It seems the clusters are getting rendered while the animation of the map zooming in is happening.

    Thanks.

    Update: After testing it seems to be caused by the label tag of the marker. If all labels are removed, the lag is gone.

    type: bug triage me 
    opened by x6pnda 6
  • MarkerClustererOptions - minimumClusterSize

    MarkerClustererOptions - minimumClusterSize

    Is your feature request related to a problem? Please describe. Apparently it is recommended to move from js-markerclustererplus to js-markerclusterer. The problem that I am running into is that minimumClusterSize seems to be missing as a cluster option.

    js-markerclustererplus repository

    Describe the solution you'd like Could be possible to add to the MarkerClustererOptions the option to add an minimumClusterSize.

    Additional context If there is an alternative solution, I am also fine with that. Could you give me some recommendations?

    type: feature request triage me 
    opened by default-kaas 5
  • Installing with npm loads incorrect paths for imports

    Installing with npm loads incorrect paths for imports

    when installing via npm instead of downloading source under releases results in the following

    • WARNING in ./node_modules/@googlemaps/markerclusterer/dist/index.esm.js
    • Error: ENOENT: no such file or directory, open 'C:/.../node_modules/@googlemaps/markerclusterer/src/algorithms/kmeans.ts'

    npm is looking for src directory but it does no exist all files are located in dist.

    this occurs on multiple imports

    type: bug triage me 
    opened by ntmk 5
  • library mutates its data (Markers)

    library mutates its data (Markers)

    Using the latest version of this library i noticed the library mutates the markers provided. Thats fine inside a React Class component, but when i want to have a Functional component i noticed i will endup with both markers being painted since the library will mutate the collection of markers.

    Is it possible the library, when initiating a new Clusterer, will return its (mutated) markers? So i can update state?

    type: bug triage me 
    opened by maapteh 5
  • algorithm use with no-module oriented

    algorithm use with no-module oriented

    Hello,

    I not use the typescript and module to use this library, all work like a charm except for algorithm parameter. How to ​use default algorithm ?

    How to use specific algorithm like Super or Noop or create new with non-module programmation ?

    Thanks

    const interpolatedRenderer = {
                    render: function ({ count, position }, stats) {
                        // use d3-interpolateRgb to interpolate between red and blue
                        // create svg url with fill color
                        const svg = window.btoa(`
                          <svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240">
                            <circle cx="120" cy="120" opacity=".8" r="70" />
                          </svg>
                        `);
                        // create marker using svg icon
                        return new google.maps.Marker({
                            position,
                            icon: {
                                url: `data:image/svg+xml;base64,${svg}`,
                                scaledSize: new google.maps.Size(60, 60),
                            },
                            label: {
                                text: String(count),
                                color: "rgba(255,255,255,0.9)",
                                fontSize: "12px",
                            },
                            // adjust zIndex to be above other markers
                            zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count,
                        });
                    },
                };
    new markerClusterer.MarkerClusterer({
                   ​markers: markers,
                   ​map: map,
                   ​renderer: interpolatedRenderer,
                   ​algorithm: markerClusterer.MarkerClusterer.algorithm.NoopAlgorithm
               ​});
    
    type: question 
    opened by vdeville 5
  • chore(deps-dev): bump @types/google.maps from 3.49.1 to 3.51.0

    chore(deps-dev): bump @types/google.maps from 3.49.1 to 3.51.0

    Bumps @types/google.maps from 3.49.1 to 3.51.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • fitBounds() issue on maps with restriction option

    fitBounds() issue on maps with restriction option

    This is a long standing issue with Google Maps API: fitBounds() doesn't work correctly on maps with restriction option. https://stackoverflow.com/questions/54712021/map-fitbounds-works-weird-when-map-has-restriction-option-set This bug has been reported and hasn't been fixe in years. https://issuetracker.google.com/issues/124546317

    One workaround is to call fitBounds() 2 times in a row. So https://github.com/googlemaps/js-markerclusterer/blob/main/src/markerclusterer.ts#L56 should be something like :

    map.fitBounds(cluster.bounds);
    if(map.restriction instanceof Object)
        map.fitBounds(cluster.bounds);
    
    type: bug triage me 
    opened by MathieuAlphamosa 0
  • Compatibility with Advanced Markers

    Compatibility with Advanced Markers

    Advanced Markers is still in beta but js-markerclusterer should plan compatibility with it.
    https://developers.google.com/maps/documentation/javascript/advanced-markers/overview

    I didn't go far with it, first problem is that the Advanced Marker class don't have a getPosition function.

    opened by MathieuAlphamosa 5
  • renderer not returning correct number of clusters

    renderer not returning correct number of clusters

    I believe there is some lost behaviour between @googlemaps/markerclustererplus and js-markerclusterer

    the clusters returned from @googlemaps/markerclustererplus will also return a cluster for single markers. This allows me to set the clusters outside of google.map.Marker by using React.useState(), check for cluster.getMarkers().length > 1 and if so render a specific custom react component for the cluster icon and another custom react component for when getMarkers().length === 1.

    The clusters returned from @googlemaps/markerclusterer will ONLY return clusters where markers.length >= 2. This is the case even though stats will return a cluster count including clusters where markers.length === 1. Also, the protected clusters response from const markerClustererResponse = initialiseMarkerClusterer(map, propertyMarkers) will also include clusters where markers.length === 1.

    @googlemaps/markerclustererplus IMPLEMENTATION

    const StaticGoogleMap = ({properties = mockData}): JSX.Element => {
        const [clusters, setClusters] = useState([]);
        
        const onGoogleApiLoaded = ({map, maps}) => {
            extendMapBoundsAndZoom(map, maps, properties);
            
            const propertyMarkers = initialisePropertyMarkers(properties);       
            const markerClustererResponse = initialiseMarkerClusterer(map, propertyMarkers)
            
            map.addListener('tilesloaded', () => {
                setClusters(markerClustererResponse.getClusters());
            });   
        }
    
        return (
            <div className={styles.staticGoogleMap}>
                <GoogleMapReact
                    bootstrapURLKeys={{ key: '' }}
                    {...mapsConfig}
                    yesIWantToUseGoogleMapApiInternals
                    onGoogleApiLoaded={onGoogleApiLoaded}
                >
                    {clusters.map((cluster, index) => {
                        const propertyIndex = index + 1;
    
                        return cluster.getMarkers().length > 1 ? (
                            <MapPinCluster 
                                key={propertyIndex}
                                propertyIndex={propertyIndex}
                                lat={cluster.getCenter().lat()}
                                lng={cluster.getCenter().lng()}
                                numberOfPropertiesAtCluster={cluster.getSize()}
                            />
                        ) : (
                            <MapPinSingle
                                key={propertyIndex}
                                propertyIndex={propertyIndex}
                                lat={cluster.getCenter().lat()}
                                lng={cluster.getCenter().lng()}
                            />
                        )
                    })}
                </GoogleMapReact>
            </div>
        );
    };
    
    export default StaticGoogleMap;
    

    @googlemaps/markerclusterer IMPLEMENTATION

    const renderer = {
                render(cluster, stats) {
                    **console.log(cluster)**; // RETURNS ONLY CLUSTERS WITH MARKERS.LENGTH >= 2. 
                    **console.log(stats)**; // RETURNS stats.cluster NOT CONSISTENT WITH cluster response. It returns clusters where there is only one marker. 
    
                    return new google.maps.Marker({
                        ....
                    });
                }
    }
    
    new MarkerClusterer({map, markers, renderer});
    
    type: bug triage me 
    opened by JamshedHabibi 1
  • Markers and Clusters are redrawn when zoom is changing

    Markers and Clusters are redrawn when zoom is changing

    I reviewed this example http://jsfiddle.net/geocodezip/f5baj1uq/ it uses https://cdnjs.cloudflare.com/ajax/libs/markerclustererplus/2.1.4/markerclusterer.js I love it because I zoom markers and clusters and them are not redrawn. MarkerCluster-Ok.webm

    But checking the last version https://googlemaps.github.io/js-markerclusterer/public/defaults/ I see that all markers and clusters are drawn for example in each zoom changing giving a bad user experience because unnecessary markers and clusters are drawn again. MarkerCluster-Ko.webm

    Is there an option in the last version to avoid flash/redraw effect in markers and clusters? Thanks for your response.

    type: bug triage me 
    opened by aron-hivebrite 1
  • Passing map bounding box to SuperCluster

    Passing map bounding box to SuperCluster

    The SuperCluster algorithm is receiving a static bounding box of [-180, -90, 180, 90]. This is causing performance issues when dealing with larger marker counts or when you are zoomed in with relatively low marker counts (1000). This is because it is trying to render thousands of markers that aren't visible on the screen.

    By passing in the map's bounding box, performance increases considerably. During testing I was able to go from struggling with 1000 markers, to no issues at all with 5000.


    Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

    • [x] Make sure to open a GitHub issue as a bug/feature request before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
    • [x] Ensure the tests and linter pass
    • [x] Code coverage does not decrease (if any source code was changed)
    • [x] Appropriate docs were updated (if necessary)

    Fixes #417 🦕

    opened by leighhalliday 14
Releases(v2.0.14)
  • v2.0.14(Nov 28, 2022)

    2.0.14 (2022-11-28)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.19.4 to 7.20.2 (#487) (778ca76)
    • deps-dev: bump @babel/runtime-corejs3 from 7.19.4 to 7.19.6 (#471) (e0462c6)
    • deps-dev: bump @babel/runtime-corejs3 from 7.19.6 to 7.20.0 (#479) (9eabf57)
    • deps-dev: bump @babel/runtime-corejs3 from 7.20.0 to 7.20.1 (#486) (258aecc)
    • deps-dev: bump @googlemaps/js-api-loader from 1.14.3 to 1.15.1 (#483) (2378004)
    • deps-dev: bump @rollup/plugin-babel from 6.0.0 to 6.0.2 (#477) (0960c6f)
    • deps-dev: bump @rollup/plugin-commonjs from 23.0.0 to 23.0.2 (#475) (8ae975b)
    • deps-dev: bump @rollup/plugin-html from 1.0.0 to 1.0.1 (#476) (9b6b73d)
    • deps-dev: bump @rollup/plugin-json from 5.0.0 to 5.0.1 (#466) (19ee685)
    • deps-dev: bump @rollup/plugin-node-resolve from 15.0.0 to 15.0.1 (#467) (7734daa)
    • deps-dev: bump @rollup/plugin-typescript from 9.0.1 to 9.0.2 (#472) (9bc5981)
    • deps-dev: bump @rollup/plugin-typescript from 9.0.2 to 10.0.1 (#497) (e346586)
    • deps-dev: bump @types/selenium-webdriver from 4.1.5 to 4.1.6 (#469) (99931f2)
    • deps-dev: bump @types/selenium-webdriver from 4.1.8 to 4.1.9 (#493) (82bf238)
    • deps-dev: bump chromedriver from 106.0.1 to 107.0.2 (#478) (43ebd0e)
    • deps-dev: bump chromedriver from 107.0.2 to 107.0.3 (#490) (1d3d6d2)
    • deps-dev: bump core-js from 3.25.5 to 3.26.0 (#468) (d1b988a)
    • deps-dev: bump core-js from 3.26.0 to 3.26.1 (#491) (ea71d32)
    • deps-dev: bump eslint-plugin-jest from 27.1.2 to 27.1.3 (#474) (20efd6a)
    • deps-dev: bump eslint-plugin-jest from 27.1.3 to 27.1.4 (#485) (afeb75c)
    • deps-dev: bump eslint-plugin-jest from 27.1.4 to 27.1.5 (#492) (866bcbd)
    • deps-dev: bump geckodriver from 3.1.0 to 3.2.0 (#473) (e512246)
    • deps-dev: bump selenium-webdriver from 4.5.0 to 4.6.0 (#488) (7210aa8)
    • deps-dev: bump selenium-webdriver from 4.6.0 to 4.6.1 (#496) (aac6392)
    • deps-dev: bump typedoc from 0.23.16 to 0.23.18 (#470) (e843a90)
    • deps-dev: bump typedoc from 0.23.18 to 0.23.19 (#480) (1ee6469)
    • deps-dev: bump typedoc from 0.23.19 to 0.23.20 (#484) (1e9dca9)
    • deps-dev: bump typedoc from 0.23.20 to 0.23.21 (#494) (7c228dc)
    • deps-dev: bump typescript from 4.8.4 to 4.9.3 (#495) (c02e798)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.13(Oct 17, 2022)

  • v2.0.12(Oct 17, 2022)

    2.0.12 (2022-10-17)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.19.0 to 7.19.3 (#447) (8bf08de)
    • deps-dev: bump @babel/preset-env from 7.19.3 to 7.19.4 (#461) (c14db6f)
    • deps-dev: bump @babel/runtime-corejs3 from 7.19.0 to 7.19.1 (#442) (1139318)
    • deps-dev: bump @babel/runtime-corejs3 from 7.19.1 to 7.19.4 (#459) (af6ffb5)
    • deps-dev: bump @rollup/plugin-babel from 5.3.1 to 6.0.0 (#457) (0568b37)
    • deps-dev: bump @rollup/plugin-commonjs from 22.0.2 to 23.0.0 (#458) (97a6569)
    • deps-dev: bump @rollup/plugin-html from 0.2.4 to 1.0.0 (#455) (7fe5b08)
    • deps-dev: bump @rollup/plugin-json from 4.1.0 to 5.0.0 (#453) (03a18a3)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.3.0 to 14.1.0 (#437) (47c6fb5)
    • deps-dev: bump @rollup/plugin-node-resolve from 14.1.0 to 15.0.0 (#451) (7f08cac)
    • deps-dev: bump @rollup/plugin-typescript from 8.5.0 to 9.0.0 (#460) (0d66a42)
    • deps-dev: bump @rollup/plugin-typescript from 9.0.0 to 9.0.1 (#463) (0cea58c)
    • deps-dev: bump chromedriver from 105.0.0 to 106.0.1 (#443) (d187545)
    • deps-dev: bump core-js from 3.25.0 to 3.25.1 (#436) (eaa755e)
    • deps-dev: bump core-js from 3.25.1 to 3.25.5 (#449) (be5cd25)
    • deps-dev: bump eslint-plugin-jest from 27.0.4 to 27.1.0 (#450) (1539187)
    • deps-dev: bump eslint-plugin-jest from 27.1.0 to 27.1.1 (#452) (26a6601)
    • deps-dev: bump eslint-plugin-jest from 27.1.1 to 27.1.2 (#465) (738902d)
    • deps-dev: bump geckodriver from 3.0.2 to 3.1.0 (#464) (6a43f7e)
    • deps-dev: bump rollup from 2.79.0 to 2.79.1 (#444) (c0740b3)
    • deps-dev: bump selenium-webdriver from 4.1.1 to 4.5.0 (#456) (df60b83)
    • deps-dev: bump typedoc from 0.23.14 to 0.23.15 (#448) (a443dc3)
    • deps-dev: bump typedoc from 0.23.15 to 0.23.16 (#462) (e80fb42)
    • deps-dev: bump typescript from 4.8.2 to 4.8.3 (#435) (a4f876f)
    • deps-dev: bump typescript from 4.8.3 to 4.8.4 (#446) (3ec6506)
    • deps: bump d3-color from 3.0.1 to 3.1.0 (#440) (0b159d1)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.11(Sep 12, 2022)

    2.0.11 (2022-09-12)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.18.10 to 7.19.0 (#431) (1a8c082)
    • deps-dev: bump @babel/runtime-corejs3 from 7.18.9 to 7.19.0 (#430) (45b9718)
    • deps-dev: bump @rollup/plugin-commonjs from 22.0.1 to 22.0.2 (#410) (f113c98)
    • deps-dev: bump @rollup/plugin-typescript from 8.3.4 to 8.4.0 (#424) (f42d25b)
    • deps-dev: bump @rollup/plugin-typescript from 8.4.0 to 8.5.0 (#432) (6fc5ca7)
    • deps-dev: bump chromedriver from 103.0.0 to 104.0.0 (#409) (24034d4)
    • deps-dev: bump chromedriver from 104.0.0 to 105.0.0 (#428) (49ddc8f)
    • deps-dev: bump core-js from 3.24.1 to 3.25.0 (#421) (0c7d73b)
    • deps-dev: bump eslint-plugin-jest from 26.7.0 to 26.8.1 (#411) (e3476f3)
    • deps-dev: bump eslint-plugin-jest from 26.8.1 to 26.8.3 (#412) (8d5dd9b)
    • deps-dev: bump eslint-plugin-jest from 26.8.3 to 26.8.7 (#414) (3c18267)
    • deps-dev: bump eslint-plugin-jest from 26.8.7 to 27.0.1 (#420) (933e287)
    • deps-dev: bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#433) (088fb09)
    • deps-dev: bump rollup from 2.77.2 to 2.78.0 (#413) (8010f48)
    • deps-dev: bump rollup from 2.78.0 to 2.78.1 (#415) (32e349e)
    • deps-dev: bump rollup from 2.78.1 to 2.79.0 (#427) (9bb362c)
    • deps-dev: bump typedoc from 0.23.10 to 0.23.11 (#423) (9616e65)
    • deps-dev: bump typedoc from 0.23.11 to 0.23.14 (#429) (f07a9ed)
    • deps-dev: bump typescript from 4.7.4 to 4.8.2 (#425) (c9ca422)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.10(Aug 2, 2022)

    2.0.10 (2022-08-02)

    Bug Fixes

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.18.2 to 7.18.6 (#386) (1a62289)
    • deps-dev: bump @babel/preset-env from 7.18.6 to 7.18.9 (#395) (4c0d87d)
    • deps-dev: bump @babel/preset-env from 7.18.9 to 7.18.10 (#403) (07e5034)
    • deps-dev: bump @babel/runtime-corejs3 from 7.18.6 to 7.18.9 (#396) (e3c685a)
    • deps-dev: bump @rollup/plugin-typescript from 8.3.3 to 8.3.4 (#407) (f08b24b)
    • deps-dev: bump core-js from 3.23.3 to 3.23.4 (#391) (fd5bab8)
    • deps-dev: bump core-js from 3.23.4 to 3.24.0 (#400) (8e4b9fe)
    • deps-dev: bump core-js from 3.24.0 to 3.24.1 (#404) (40e1b83)
    • deps-dev: bump eslint-plugin-jest from 26.5.3 to 26.6.0 (#397) (64d6df0)
    • deps-dev: bump eslint-plugin-jest from 26.6.0 to 26.7.0 (#405) (45bbc94)
    • deps-dev: bump eslint-plugin-prettier from 4.1.0 to 4.2.1 (#388) (5c80e85)
    • deps-dev: bump geckodriver from 3.0.1 to 3.0.2 (#389) (33ec5a9)
    • deps-dev: bump rollup from 2.75.7 to 2.76.0 (#390) (c8eb563)
    • deps-dev: bump rollup from 2.76.0 to 2.77.0 (#394) (10b59f7)
    • deps-dev: bump rollup from 2.77.0 to 2.77.2 (#402) (a3258a3)
    • deps-dev: bump typedoc from 0.23.1 to 0.23.5 (#387) (01d9f56)
    • deps-dev: bump typedoc from 0.23.5 to 0.23.7 (#392) (2f1edd0)
    • deps-dev: bump typedoc from 0.23.7 to 0.23.9 (#401) (032591d)
    • deps-dev: bump typedoc from 0.23.9 to 0.23.10 (#406) (6b2961e)
    • deps: bump terser from 5.3.1 to 5.14.2 (#399) (161b943)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.9(Jun 30, 2022)

    2.0.9 (2022-06-30)

    Bug Fixes

    Miscellaneous Chores

    • deps-dev: bump @babel/runtime-corejs3 from 7.18.3 to 7.18.6 (#382) (e59d1a0)
    • deps-dev: bump @googlemaps/jest-mocks from 2.7.4 to 2.7.5 (#370) (11bc9f8)
    • deps-dev: bump @rollup/plugin-commonjs from 22.0.0 to 22.0.1 (#379) (bc01b2b)
    • deps-dev: bump chromedriver from 102.0.0 to 103.0.0 (#381) (0c06498)
    • deps-dev: bump core-js from 3.23.2 to 3.23.3 (#378) (6d172b0)
    • deps-dev: bump eslint-plugin-prettier from 4.0.0 to 4.1.0 (#380) (5a0f151)
    • deps-dev: bump prettier from 2.6.2 to 2.7.1 (#373) (09462a1)
    • deps-dev: bump rollup from 2.75.6 to 2.75.7 (#372) (ba991e3)
    • deps-dev: bump typedoc from 0.22.17 to 0.23.1 (#377) (59c9fcc)
    • deps-dev: bump typescript from 4.7.3 to 4.7.4 (#371) (3ebfdc5)
    • deps: bump jsdom from 16.4.0 to 16.7.0 (#375) (986e41f)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.8(Jun 20, 2022)

    2.0.8 (2022-06-20)

    Build System

    • change dependabot interval to weekly (#339) (02aea71)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.17.12 to 7.18.0 (#340) (49d9bea)
    • deps-dev: bump @babel/preset-env from 7.18.0 to 7.18.2 (#352) (2203d0a)
    • deps-dev: bump @babel/runtime-corejs3 from 7.17.9 to 7.18.0 (#342) (f92334f)
    • deps-dev: bump @babel/runtime-corejs3 from 7.18.0 to 7.18.3 (#349) (78e4352)
    • deps-dev: bump @googlemaps/jest-mocks from 2.7.3 to 2.7.4 (#344) (2fdfd20)
    • deps-dev: bump @googlemaps/js-api-loader from 1.14.2 to 1.14.3 (#343) (9f8e3a1)
    • deps-dev: bump @rollup/plugin-typescript from 8.3.2 to 8.3.3 (#367) (71a864c)
    • deps-dev: bump @types/google.maps from 3.48.8 to 3.49.0 (#347) (5e6cf17)
    • deps-dev: bump @types/google.maps from 3.49.0 to 3.49.1 (#354) (d4b60a1)
    • deps-dev: bump chromedriver from 101.0.0 to 102.0.0 (#363) (afbf6e6)
    • deps-dev: bump core-js from 3.22.5 to 3.22.6 (#346) (85b6e72)
    • deps-dev: bump core-js from 3.22.6 to 3.22.7 (#355) (d59cdd9)
    • deps-dev: bump core-js from 3.22.7 to 3.22.8 (#361) (b698b87)
    • deps-dev: bump core-js from 3.22.8 to 3.23.0 (#366) (bac6055)
    • deps-dev: bump core-js from 3.23.0 to 3.23.2 (#369) (6c3fff4)
    • deps-dev: bump eslint-plugin-jest from 26.2.2 to 26.4.6 (#350) (0782770)
    • deps-dev: bump eslint-plugin-jest from 26.4.6 to 26.5.3 (#358) (1050326)
    • deps-dev: bump rollup from 2.73.0 to 2.74.1 (#341) (faa6601)
    • deps-dev: bump rollup from 2.74.1 to 2.75.3 (#351) (535eb1f)
    • deps-dev: bump rollup from 2.75.3 to 2.75.5 (#360) (3b657df)
    • deps-dev: bump rollup from 2.75.5 to 2.75.6 (#365) (f5aa72e)
    • deps-dev: bump typedoc from 0.22.15 to 0.22.16 (#353) (72ef3dd)
    • deps-dev: bump typedoc from 0.22.16 to 0.22.17 (#359) (8884bfb)
    • deps-dev: bump typescript from 4.6.4 to 4.7.3 (#362) (baf133a)
    • update owners (#348) (6d6c2cc)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.7(May 19, 2022)

    2.0.7 (2022-05-19)

    Build System

    Miscellaneous Chores

    • add --approve (3d43a42)
    • deps-dev: bump @babel/preset-env from 7.16.11 to 7.17.10 (#315) (8fb006b)
    • deps-dev: bump @babel/preset-env from 7.17.10 to 7.17.12 (#337) (55272b6)
    • deps-dev: bump @googlemaps/jest-mocks from 2.7.2 to 2.7.3 (#331) (68a07f1)
    • deps-dev: bump @googlemaps/js-api-loader from 1.14.1 to 1.14.2 (#334) (32eb518)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.2.1 to 13.3.0 (#330) (b51a911)
    • deps-dev: bump @types/google.maps from 3.48.7 to 3.48.8 (#333) (64be90e)
    • deps-dev: bump chromedriver from 100.0.0 to 101.0.0 (#317) (9fd956b)
    • deps-dev: bump core-js from 3.22.2 to 3.22.5 (#325) (4f59f38)
    • deps-dev: bump eslint-plugin-jest from 26.1.5 to 26.2.2 (#336) (1354fc6)
    • deps-dev: bump rollup from 2.70.2 to 2.72.1 (#332) (f90cb48)
    • deps-dev: bump rollup from 2.72.1 to 2.73.0 (#335) (ccf3847)
    • deps-dev: bump typescript from 4.6.3 to 4.6.4 (#316) (29e8a85)
    • fix approval by providing url to pr (5c64151)
    • only approve (99b2dfe)
    • simplify dependabot workflow (c48bb5a)
    • Synced file(s) with googlemaps/.github (#321) (6b59c8b)
    • Synced file(s) with googlemaps/.github (#329) (3f8a437)
    • Synced local '.github/' with remote 'sync-files/js/.github/' (#328) (63c893c)
    • Synced local '.github/workflows/dependabot.yml' with remote '.github/workflows/dependabot.yml' (#327) (61b86f1)
    • update pull request approval comment (e870770)

    Documentation

    Source code(tar.gz)
    Source code(zip)
  • v2.0.6(Apr 28, 2022)

  • v2.0.5(Apr 27, 2022)

    2.0.5 (2022-04-27)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.7.1 to 2.7.2 (#309) (f376300)
    • deps-dev: bump @googlemaps/js-api-loader from 1.14.0 to 1.14.1 (#303) (ba2b3e7)
    • deps-dev: bump @rollup/plugin-commonjs from 21.1.0 to 22.0.0 (#307) (90e58a0)
    • deps-dev: bump @types/google.maps from 3.48.2 to 3.48.7 (#310) (976987d)
    • deps-dev: bump @types/selenium-webdriver from 4.0.18 to 4.0.19 (#299) (f501f24)
    • deps-dev: bump core-js from 3.22.0 to 3.22.1 (#302) (f1c7934)
    • deps-dev: bump core-js from 3.22.1 to 3.22.2 (#304) (e0a81e0)
    • deps-dev: bump eslint-plugin-jest from 26.1.4 to 26.1.5 (#308) (f0c69c5)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.4(Apr 18, 2022)

    2.0.4 (2022-04-18)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.6.4 to 2.7.0 (#286) (5dba69d)
    • deps-dev: bump @googlemaps/jest-mocks from 2.7.0 to 2.7.1 (#298) (4318d45)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.11 to 1.14.0 (#289) (ed563d7)
    • deps-dev: bump @rollup/plugin-commonjs from 21.0.3 to 21.1.0 (#294) (819949c)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.1.3 to 13.2.0 (#290) (9f8c579)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.2.0 to 13.2.1 (#295) (1ab5024)
    • deps-dev: bump @rollup/plugin-typescript from 8.3.1 to 8.3.2 (#291) (2deae77)
    • deps-dev: bump core-js from 3.21.1 to 3.22.0 (#293) (4d58e0a)
    • deps-dev: bump eslint-plugin-jest from 26.1.3 to 26.1.4 (#287) (ca0ce85)
    • deps-dev: bump rollup from 2.70.1 to 2.70.2 (#292) (5f8e2a5)
    • deps-dev: bump typedoc from 0.22.14 to 0.22.15 (#288) (8cb4192)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(Apr 7, 2022)

    2.0.3 (2022-04-07)

    Miscellaneous Chores

    • deps-dev: bump @babel/runtime-corejs3 from 7.17.8 to 7.17.9 (#284) (f01ff2b)
    • deps-dev: bump @googlemaps/jest-mocks from 2.6.3 to 2.6.4 (#277) (727cba1)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.10 to 1.13.11 (#281) (5c38981)
    • deps-dev: bump chromedriver from 99.0.0 to 100.0.0 (#275) (d9c6f64)
    • deps-dev: bump prettier from 2.6.1 to 2.6.2 (#279) (6854aac)
    • deps-dev: bump typedoc from 0.22.13 to 0.22.14 (#285) (9394f73)
    • deps: bump fast-equals from 3.0.0 to 3.0.1 (#283) (53ca08e)
    • deps: bump supercluster from 7.1.4 to 7.1.5 (#280) (4c834d5)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Mar 28, 2022)

    2.0.2 (2022-03-28)

    Miscellaneous Chores

    • deps-dev: bump @babel/runtime-corejs3 from 7.17.7 to 7.17.8 (#265) (66a8cf7)
    • deps-dev: bump @googlemaps/jest-mocks from 2.6.2 to 2.6.3 (#272) (8ef62d8)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.9 to 1.13.10 (#268) (b76e99d)
    • deps-dev: bump @rollup/plugin-commonjs from 21.0.2 to 21.0.3 (#274) (c522891)
    • deps-dev: bump eslint-plugin-jest from 26.1.1 to 26.1.2 (#264) (d5a3576)
    • deps-dev: bump eslint-plugin-jest from 26.1.2 to 26.1.3 (#269) (5f832c6)
    • deps-dev: bump prettier from 2.6.0 to 2.6.1 (#273) (3d3c3c2)
    • deps-dev: bump typescript from 4.6.2 to 4.6.3 (#271) (c1ee0e2)
    • deps: bump minimist from 1.2.5 to 1.2.6 (#270) (b0a4ed6)
    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Mar 18, 2022)

  • v2.0.0(Mar 17, 2022)

    2.0.0 (2022-03-17)

    ⚠ BREAKING CHANGES

    • DBScanAlgorithm and KMeansAlgorithm have been removed.

    Bug Fixes

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.6.1 to 2.6.2 (#259) (f8455fa)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.8 to 1.13.9 (#260) (8f9f709)
    • deps-dev: bump prettier from 2.5.1 to 2.6.0 (#261) (27f6bec)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.27(Mar 14, 2022)

    1.0.27 (2022-03-14)

    Miscellaneous Chores

    • deps-dev: bump @babel/runtime-corejs3 from 7.17.2 to 7.17.7 (#258) (027cc86)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.7 to 1.13.8 (#254) (95905f6)
    • deps-dev: bump @types/google.maps from 3.48.1 to 3.48.2 (#255) (f78b90a)
    • deps-dev: bump chromedriver from 98.0.1 to 99.0.0 (#252) (900568e)
    • deps-dev: bump rollup from 2.69.0 to 2.69.1 (#250) (86c588d)
    • deps-dev: bump rollup from 2.69.1 to 2.70.0 (#253) (aa7348a)
    • deps-dev: bump rollup from 2.70.0 to 2.70.1 (#257) (57ae8ab)
    • deps-dev: bump typedoc from 0.22.12 to 0.22.13 (#251) (f8a1f97)
    • deps-dev: bump typescript from 4.5.5 to 4.6.2 (#256) (9fcb435)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.26(Mar 3, 2022)

    1.0.26 (2022-03-03)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.6.0 to 2.6.1 (#249) (3fb792d)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.6 to 1.13.7 (#244) (eac6b7d)
    • deps-dev: bump @rollup/plugin-commonjs from 21.0.1 to 21.0.2 (#240) (33c1e80)
    • deps-dev: bump @rollup/plugin-typescript from 8.3.0 to 8.3.1 (#241) (380e47e)
    • deps-dev: bump @types/google.maps from 3.47.4 to 3.48.1 (#245) (8caafdd)
    • deps-dev: bump eslint-config-prettier from 8.4.0 to 8.5.0 (#248) (7f5931d)
    • deps-dev: bump rollup from 2.68.0 to 2.69.0 (#247) (51ffc9d)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.25(Feb 23, 2022)

    1.0.25 (2022-02-23)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.4.0 to 2.5.0 (#225) (e2ca48c)
    • deps-dev: bump @googlemaps/jest-mocks from 2.5.0 to 2.6.0 (#228) (5c08bff)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.5 to 1.13.6 (#226) (7349071)
    • deps-dev: bump @rollup/plugin-babel from 5.3.0 to 5.3.1 (#239) (eab037d)
    • deps-dev: bump @types/jest from 27.4.0 to 27.4.1 (#238) (999f666)
    • deps-dev: bump @types/supercluster from 5.0.3 to 7.1.0 (#235) (d4b9c03)
    • deps-dev: bump chromedriver from 98.0.0 to 98.0.1 (#224) (1c5e8fb)
    • deps-dev: bump core-js from 3.21.0 to 3.21.1 (#227) (6494a57)
    • deps-dev: bump eslint-config-prettier from 8.3.0 to 8.4.0 (#236) (d6b68ef)
    • deps-dev: bump rollup from 2.67.2 to 2.67.3 (#229) (548c9dd)
    • deps-dev: bump rollup from 2.67.3 to 2.68.0 (#237) (41ad048)
    • deps-dev: bump typedoc from 0.22.11 to 0.22.12 (#234) (1bce0f0)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.24(Feb 15, 2022)

    1.0.24 (2022-02-15)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 2.3.1 to 2.4.0 (#222) (2e3a2ca)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.4 to 1.13.5 (#216) (6ac5ea3)
    • deps-dev: bump @types/google.maps from 3.47.3 to 3.47.4 (#218) (0c2c405)
    • deps-dev: bump @types/selenium-webdriver from 4.0.16 to 4.0.18 (#219) (81ced95)
    • deps-dev: bump chromedriver from 97.0.3 to 98.0.0 (#217) (e5dd4be)
    • deps-dev: bump core-js from 3.20.3 to 3.21.0 (#207) (b5d6c09)
    • deps-dev: bump eslint-plugin-jest from 26.1.0 to 26.1.1 (#223) (a4ebb89)
    • deps-dev: bump rollup from 2.67.1 to 2.67.2 (#221) (54920e3)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.23(Feb 8, 2022)

  • v1.0.22(Jan 31, 2022)

    1.0.22 (2022-01-31)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.16.10 to 7.16.11 (#194) (cdd402f)
    • deps-dev: bump @googlemaps/jest-mocks from 2.2.0 to 2.3.0 (#202) (121ac1e)
    • deps-dev: bump @types/google.maps from 3.47.2 to 3.47.3 (#197) (6a3bb77)
    • deps-dev: bump chromedriver from 97.0.0 to 97.0.1 (#199) (f00a70e)
    • deps-dev: bump chromedriver from 97.0.1 to 97.0.2 (#203) (0f0dd32)
    • deps-dev: bump chromedriver from 97.0.2 to 97.0.3 (#205) (db8a1c6)
    • deps-dev: bump eslint-plugin-jest from 25.7.0 to 26.0.0 (#200) (320af1a)
    • deps-dev: bump rollup from 2.64.0 to 2.65.0 (#196) (0eaa888)
    • deps-dev: bump rollup from 2.65.0 to 2.66.0 (#198) (8e58d6d)
    • deps-dev: bump rollup from 2.66.0 to 2.66.1 (#204) (f1b0e42)
    • deps-dev: bump typescript from 4.5.4 to 4.5.5 (#195) (6b3c842)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.21(Jan 19, 2022)

    1.0.21 (2022-01-19)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.16.7 to 7.16.8 (#181) (0290bad)
    • deps-dev: bump @babel/preset-env from 7.16.8 to 7.16.10 (#193) (8f639da)
    • deps-dev: bump @babel/runtime-corejs3 from 7.16.7 to 7.16.8 (#180) (1c837e7)
    • deps-dev: bump @googlemaps/jest-mocks from 1.5.1 to 2.0.0 (#173) (92a32f6)
    • deps-dev: bump @googlemaps/jest-mocks from 2.0.0 to 2.1.1 (#182) (7fe29d2)
    • deps-dev: bump @googlemaps/jest-mocks from 2.1.1 to 2.2.0 (#184) (22bfb33)
    • deps-dev: bump @googlemaps/js-api-loader from 1.13.1 to 1.13.2 (#186) (ff09548)
    • deps-dev: bump core-js from 3.20.2 to 3.20.3 (#188) (9271d64)
    • deps-dev: bump eslint-plugin-jest from 25.3.4 to 25.7.0 (#189) (ad1859d)
    • deps-dev: bump rollup from 2.63.0 to 2.64.0 (#187) (4c1f946)
    • deps-dev: bump typedoc from 0.22.10 to 0.22.11 (#190) (edf44d1)
    • deps: bump follow-redirects from 1.14.6 to 1.14.7 (#185) (0d070a7)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.20(Jan 10, 2022)

    1.0.20 (2022-01-10)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.16.4 to 7.16.7 (#166) (a710567)
    • deps-dev: bump @babel/runtime-corejs3 from 7.16.5 to 7.16.7 (#169) (4ed7e62)
    • deps-dev: bump @googlemaps/js-api-loader from 1.12.12 to 1.13.1 (#176) (9c9956c)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.1.1 to 13.1.2 (#167) (641385a)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.1.2 to 13.1.3 (#175) (801f104)
    • deps-dev: bump chromedriver from 96.0.0 to 97.0.0 (#177) (c46c955)
    • deps-dev: bump core-js from 3.20.1 to 3.20.2 (#171) (5db6821)
    • deps-dev: bump eslint-plugin-jest from 25.3.2 to 25.3.3 (#168) (bd92b94)
    • deps-dev: bump eslint-plugin-jest from 25.3.3 to 25.3.4 (#170) (b534a20)
    • deps-dev: bump rollup from 2.62.0 to 2.63.0 (#172) (5f2250b)
    • deps-dev: bump selenium-webdriver from 4.0.0 to 4.1.1 (#178) (6a201c2)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.19(Dec 30, 2021)

    1.0.19 (2021-12-30)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/js-api-loader from 1.12.11 to 1.12.12 (#156) (2298fdb)
    • deps-dev: bump @types/jest from 27.0.3 to 27.4.0 (#165) (d01111e)
    • deps-dev: bump core-js from 3.20.0 to 3.20.1 (#162) (20b0ec5)
    • deps-dev: bump eslint-plugin-jest from 25.3.0 to 25.3.2 (#164) (d1f87d3)
    • deps-dev: bump geckodriver from 2.0.4 to 3.0.0 (#157) (d5c0e5d)
    • deps-dev: bump geckodriver from 3.0.0 to 3.0.1 (#159) (31596de)
    • deps-dev: bump rollup from 2.61.1 to 2.62.0 (#163) (d203d9e)
    • deps-dev: bump typescript from 4.5.3 to 4.5.4 (#150) (623a9c6)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.18(Dec 17, 2021)

    1.0.18 (2021-12-17)

    Miscellaneous Chores

    • deps-dev: bump @babel/runtime-corejs3 from 7.16.3 to 7.16.5 (#149) (d07110e)
    • deps-dev: bump @googlemaps/jest-mocks from 1.4.0 to 1.5.0 (#140) (5e132b4)
    • deps-dev: bump @googlemaps/jest-mocks from 1.5.0 to 1.5.1 (#153) (9bc185e)
    • deps-dev: bump @rollup/plugin-node-resolve from 13.0.6 to 13.1.1 (#146) (9f5da72)
    • deps-dev: bump @types/google.maps from 3.47.1 to 3.47.2 (#145) (d621a6a)
    • deps-dev: bump core-js from 3.19.3 to 3.20.0 (#151) (2333246)
    • deps-dev: bump rollup from 2.60.2 to 2.61.0 (#139) (072abce)
    • deps-dev: bump rollup from 2.61.0 to 2.61.1 (#147) (fc3a252)
    • deps-dev: bump typescript from 4.5.2 to 4.5.3 (#142) (56d928a)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.17(Dec 8, 2021)

    1.0.17 (2021-12-08)

    Bug Fixes

    • improve default marker title and accessibility (#137) (9901a89)

    Documentation

    • remove wrong image from class comments (993ef85)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 1.3.9 to 1.4.0 (#129) (05c292d)
    • deps-dev: bump @types/google.maps from 3.47.0 to 3.47.1 (#134) (21095cb)
    • deps-dev: bump core-js from 3.19.2 to 3.19.3 (#132) (fafa042)
    • deps-dev: bump prettier from 2.5.0 to 2.5.1 (#131) (50eb22b)
    • Synced local '.github/' with remote 'sync-files/js/.github/' (#138) (dbcebdd)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.16(Nov 30, 2021)

    1.0.16 (2021-11-30)

    Miscellaneous Chores

    • deps-dev: bump @googlemaps/jest-mocks from 1.3.7 to 1.3.8 (#121) (597e42e)
    • deps-dev: bump @googlemaps/jest-mocks from 1.3.8 to 1.3.9 (#126) (f03b363)
    • deps-dev: bump @googlemaps/js-api-loader from 1.12.10 to 1.12.11 (#127) (7c5446e)
    • deps-dev: bump @googlemaps/js-api-loader from 1.12.9 to 1.12.10 (#119) (9a20d4e)
    • deps-dev: bump core-js from 3.19.1 to 3.19.2 (#125) (c32b69d)
    • deps-dev: bump eslint-plugin-jest from 25.2.4 to 25.3.0 (#120) (0ee8058)
    • deps-dev: bump prettier from 2.4.1 to 2.5.0 (#123) (283a4ed)
    • deps-dev: bump rollup from 2.60.1 to 2.60.2 (#128) (ff37e41)
    • deps-dev: bump typedoc from 0.22.9 to 0.22.10 (#122) (cbf4f14)
    • deps-dev: bump typescript from 4.4.4 to 4.5.2 (#124) (5e97033)
    • Synced local '.github/' with remote 'sync-files/js/.github/' (#118) (bb6584c)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.15(Nov 22, 2021)

  • v1.0.14(Nov 22, 2021)

  • v1.0.13(Nov 17, 2021)

    1.0.13 (2021-11-17)

    Miscellaneous Chores

    • deps-dev: bump @babel/preset-env from 7.16.0 to 7.16.4 (#107) (dd7c3c7)
    • deps-dev: bump @babel/runtime-corejs3 from 7.16.0 to 7.16.3 (#101) (60d1847)
    • deps-dev: bump @googlemaps/jest-mocks from 1.3.6 to 1.3.7 (#105) (38fe287)
    • deps-dev: bump @googlemaps/js-api-loader from 1.12.8 to 1.12.9 (#102) (edc990d)
    • deps-dev: bump chromedriver from 95.0.0 to 96.0.0 (#109) (03ce06f)
    • deps-dev: bump eslint-plugin-jest from 25.2.3 to 25.2.4 (#100) (abe4858)
    • deps-dev: bump rollup from 2.59.0 to 2.60.0 (#103) (1fd5ad5)
    • deps-dev: bump rollup-plugin-typescript2 from 0.30.0 to 0.31.0 (#108) (f8082ec)
    • deps-dev: bump typedoc from 0.22.8 to 0.22.9 (#104) (990bf7c)
    Source code(tar.gz)
    Source code(zip)
An online tool to generate and visualize maps for irregular and/or gapped LED layouts, for use with FastLED, Pixelblaze and other libraries.

An online tool to generate and visualize maps for irregular and/or gapped LED layouts, for use with FastLED, Pixelblaze and other libraries.

Jason Coon 172 Dec 8, 2022
The NASA WorldWind Javascript SDK (WebWW) includes the library and examples for creating geo-browser web applications and for embedding a 3D globe in HTML5 web pages.

Web WorldWind New versions of WorldWind released Web WorldWind 0.10.0 and WorldWind Java 2.2.0 are now available on GitHub. The new version of Web Wor

NASA WorldWind 770 Jan 1, 2023
geotiff.js is a small library to parse TIFF files for visualization or analysis. It is written in pure JavaScript, and is usable in both the browser and node.js applications.

geotiff.js Read (geospatial) metadata and raw array data from a wide variety of different (Geo)TIFF files types. Features Currently available function

geotiff.js 649 Dec 21, 2022
Serverless raster and vector map tile generation using Mapnik and AWS Lambda

tilegarden ??️ ?? Contents About Usage Deployment to AWS Additional Configuration Options Required AWS Permissions Features Configuration Selection an

Azavea 89 Dec 22, 2022
MERN stack travel app using mapbox API, Travel and drop pin , share reviews and rate the location

MERN-Travel-Map Travel Map Pin A single page application built with MERN Stack from scratch (MongoDB + Mongoose, Express, React & NodeJs) Table of Con

Bùi Quốc Trọng 11 Dec 29, 2022
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics

Cesium 9.7k Dec 26, 2022
An open-source JavaScript library for world-class 3D globes and maps :earth_americas:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics

Cesium 9.7k Jan 3, 2023
This is the leaflet plugin for GeoServer. Using this plugin user can have access to wms and wfs request easily.

Documentation leaflet-geoserver-request This is the plugin for Geoserver various kind of requests. Using this plugin, we can make WMS, WFS, getLegendG

Tek Kshetri 127 Dec 15, 2022
Converts geojson to svg string given svg viewport size and maps extent.

geojson2svg Converts geojson to svg string given svg viewport size and maps extent. Check world map, SVG scaled map and color coded map examples to de

Gagan Bansal 163 Dec 17, 2022
A very fast geospatial point clustering library for browsers and Node.

supercluster A very fast JavaScript library for geospatial point clustering for browsers and Node. <script src="https://unpkg.com/[email protected]/d

Mapbox 1.6k Jan 7, 2023
A Node.js map tile library for PostGIS and torque.js, with CartoCSS styling

Windshaft A Node.js map tile library for PostGIS and torque.js, with CartoCSS styling. Can render arbitrary SQL queries Generates image and UTFGrid in

CARTO 306 Dec 22, 2022
The smallest, simplest and fastest JavaScript pixel-level image comparison library

pixelmatch The smallest, simplest and fastest JavaScript pixel-level image comparison library, originally created to compare screenshots in tests. Fea

Mapbox 5.1k Jan 8, 2023
Geokit - is a command-line interface (CLI) tool written in javascript, that contains all the basic functionalities for measurements, conversions and operations of geojson files.

Geokit Geokit is a command-line interface (CLI) tool written in javascript, that contains all the basic functionalities for measurements, conversions

Development Seed 31 Nov 17, 2022
Tools for editing Shapefile, GeoJSON, TopoJSON and CSV files

Mapshaper Introduction Mapshaper is software for editing Shapefile, GeoJSON, TopoJSON, CSV and several other data formats, written in JavaScript. Maps

Matthew Bloch 3.2k Jan 2, 2023
Super Low-Level Raster Reprojection and Resampling Library

geowarp Super Low-Level Raster Reprojection and Resampling Library install npm install -S geowarp usage const geowarp = require("geowarp"); const proj

Daniel J. Dufour 27 Nov 9, 2022
This map is tracking the position of ISS(international space setallite) at every 1 second. I use Nasa's "where the iss" API and "Leaflet.js" for the map.

ISS-tracking-map About This map is tracking the position of ISS(international space setallite) at every 1 second. I use Nasa's "where the iss" API and

Waz.sheeran 2 Oct 25, 2021
Information about the application internals and instructions on how to run it can be found in our Technical Documentation.

Swisstopo Showcases Welcome to our approach on bringing geodata closer to the user. This is our semester project during our Bachelor studies at the Be

Jonas Hofer 3 Sep 30, 2022
:ukraine: A self-hosted app for keeping track of employee wellbeing and dislocation during the Russo-Ukrainian war, with an interactive map.

Helping organizations stay together and help their members in times of disaster On February 24th, 2022, the lives of the entire Ukrainian nation were

MacPaw Inc. 111 Dec 15, 2022
Dashboards-maps is a frontend plugin that helps you in uploading custom GeoJSON to OpenSearch and communicates with the geospatial backend plugin for the same.

Welcome! Project Resources Code of Conduct License Copyright Dashboards-Maps Dashboards-maps is a frontend plugin that helps you in uploading custom G

null 9 Dec 28, 2022