Coder Social home page Coder Social logo

Comments (4)

GoogleCodeExporter avatar GoogleCodeExporter commented on August 15, 2024
Here's a refactored version: 

MarkerClusterer.prototype.removeMarkerBase_ = function (marker) {
    var index = -1;
    if (this.markers_.indexOf) {
        index = this.markers_.indexOf(marker);
    } else {
        for (var i = 0, m; m = this.markers_[i]; i++) {
            if (m == marker) {
                index = i;
                continue;
            }
        }
    }

    if (index == -1) {
        // Marker is not in our list of markers.
        return false;
    }

    this.markers_.splice(index, 1);
    marker.setVisible(false);
    marker.setMap(null);
    return true;
};


/**
* Remove a marker from the cluster.
*
* @param {google.maps.Marker} marker The marker to remove.
* @return {boolean} True if the marker was removed.
*/
MarkerClusterer.prototype.removeMarker = function (marker) {
    var removed = removed || this.removeMarkerBase_(marker);
    if (removed) {
        this.resetViewport();
        this.redraw();
        return true;
    } else {
        return false;
    }
};

MarkerClusterer.prototype.removeMarkers = function (toRemove) {
    var removed = false;
    for (var j = 0, marker; marker = toRemove[j]; j++) {
        removed = this.removeMarkerBase_(marker);
    }
    if (removed) {
        this.resetViewport();
        this.redraw();
    }
};

Original comment by [email protected] on 3 May 2010 at 6:14

from google-maps-utility-library-v3.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 15, 2024
The code above has very nasty bugs, this is better:
MarkerClusterer.prototype.removeMarkerBase_ = function (marker) {
    var index = -1;
    if (this.markers_.indexOf) {
        index = this.markers_.indexOf(marker);
    } else {
        for (var i = 0, m; m = this.markers_[i]; i++) {
            if (m == marker) {
                index = i;
                continue;
            }
        }
    }

    if (index == -1) {
        // Marker is not in our list of markers.
        return false;
    }

    this.markers_.splice(index, 1);
    marker.setVisible(false);
    marker.setMap(null);
    return true;
};


/**
* Remove a marker from the cluster.
*
* @param {google.maps.Marker} marker The marker to remove.
* @return {boolean} True if the marker was removed.
*/
MarkerClusterer.prototype.removeMarker = function (marker) {
    var removed = this.removeMarkerBase_(marker);
    if (removed) {
        this.resetViewport();
        this.redraw();
        return true;
    } else {
        return false;
    }
};

MarkerClusterer.prototype.removeMarkers = function (toRemove) {
    var removed = false;
    for (var j = 0, marker; marker = toRemove[j]; j++) {
        var thisremoved = this.removeMarkerBase_(marker);
        removed = removed || thisremoved;
    }
    if (removed) {
        this.resetViewport();
        this.redraw();
    }
};

Original comment by [email protected] on 9 May 2010 at 12:18

from google-maps-utility-library-v3.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 15, 2024
        for (var i = 0, m; m = this.markers_[i]; i++) {
            if (m == marker) {
                index = i;
                break;
            }
        }

using break breaks the loop, continue does NOT... which makes it even faster, 
yey!

Original comment by [email protected] on 2 Sep 2010 at 11:48

from google-maps-utility-library-v3.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 15, 2024
Thanks for that guys, I've added the code.

Original comment by [email protected] on 6 Oct 2010 at 12:11

  • Changed state: Fixed

from google-maps-utility-library-v3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.