eschwartz / backbone.googlemaps

A Backbone JS extension for interacting with the Google Maps API (v3.10)
MIT License
139 stars 55 forks source link

MarkerClustererPlus support #31

Closed webakimbo closed 10 years ago

webakimbo commented 10 years ago

Enhancement request: support for MarkerClustererPlus, essential UI component for densely populated maps.

Since we need this capability for a spec project right away, and since activity on your repo is somewhat infrequent, I forked your repo and took an initial pass at integrating myself. Seems to work ok.

However, as a forking n00b, I want to be sure of the following:

Any and all feedback welcome. Thanks for the work.

eschwartz commented 10 years ago

Hi @webakimbo I'm glad to hear this library is useful for you. Regarding attribution, I just added a license file (MIT) to the repo -- basically you just need to include the license with your own, if you're building the libraries together. Here's an example of a "combo" license


So here are my thoughts on forking Backbone.GoogleMaps:

If I were considering Backbone.GoogleMaps on a new project, I would be concerned about the longevity and ongoing support for the library. The code base, as is stands, is not very extensible, and there is no formal testing of the library. I am trying to keep up with critical bugs as I see them, but am not considering new features or major refactoring.

But wait.. all is not lost. I have been working for the last few months on a new library open source library called AerisJS which includes all the functionality (and much more) of Backbone.GoogleMaps. It is well tested, and backed by a (paid) support team. It was created as a means for rendering weather data onto a map, but at it's core it is a library for rendering any type location-based data. And, it's all built on Backbone, so it is compatible with any type of Backbone models.

MarkerClustererPlus support is already built in (and well tested). I am currently working on providing support for Leaflet, which has a much less clunky marker clusterer.

We're still officially in beta, so you may need to keep up with some minor API updates as we move towards a v1.0 release (or lock into a pre-release version using bower). On the other hand, I have much more confidence in AerisJS in its current state than in Backbone.GoogleMaps. Also, I would be able to provide you with as much support as you need getting started (it's my day job :thumbsup: ).

So if you're interested, let me know, and I can help get you started.

webakimbo commented 10 years ago

Cool - Aeris looks promising. I'd like to get started today if possible. Do I need a developer license first, or can I install via bower and play around with it?

Btw, what's support like (Aeris and Leaflet) for mobile? Responsive? Degrades gracefully?

I'll certainly consult the docs, but of course if you're offering training wheels I won't turn them down. Easiest to continue the conversation at andy [at] coderefactory [dot] com. Thanks.

eschwartz commented 10 years ago

For your purposes, you will not need a developer license (if you want to play with weather data, you can get a free AerisAPI license here.

As far as mobile support goes, I think the biggest factor would be which mapping library you choose to use. I've heard that Leaflet is a little more mobile-friendly than google maps. We currently only offer partial support of Leaflet, though we're working on it.

For mobile support, you will also want to consider the size of the library. As we're using AMD (RequireJS), you can pick and choose which modules you want to use, and then only include those libraries in your build.

I'll send you an email so we can talk more specifics.

eschwartz commented 10 years ago

I'm not planning on adding marker clustering support for Backbone.GoogleMaps, so I'm going to close this. I'm hoping I have some time to break out the Backbone/Maps components of Aeris.js out into it's own library sometime soon, and release it as a replacement for Backbone.GoogleMaps, though it will probably have to wait until my current project slows down.

See the above convo for details.