Hacker News new | ask | show | jobs
by guu 2388 days ago
Thanks for creating Leaflet and Mapbox GL!

Do you have any specific examples of "complex GIS stuff" (Uses OpenLayers) or a "highly interactive app" (Uses MapBox GL)?

Are there any big feature gaps from leaflet->mapbox-gl that developers should consider when choosing a mapping library?

3 comments

Note: I didn't create Mapbox GL, I'm just a part of the core team: https://github.com/mapbox/mapbox-gl-js/graphs/contributors

Don't have any particular OpenLayers examples in mind at the moment but it's very heavily used in government, enterprise and academics — sectors that often need advanced projections, use various obscure formats / protocols and prefer all the features to be packed in one product and maintained consistently by one team.

For Mapbox, here's a showcase https://www.mapbox.com/showcase. It especially shines in apps that need to render hundreds of thousands of features at once, maximum customization in how the map looks and feels, updating map appearance dynamically in real time, or some cool animations.

In terms of features, Leaflet has a huge plugin community and there's a plugin for pretty much any feature since it has been around for 8 years, although their quality varies (the core is top-notch though). Mapbox GL will need to catch up on that front certainly, but on the other hand, there are things that are simply not possible with raster-based mapping libraries — things like making any feature you see interactive, changing the map appearance in real time, rendering millions of features (with high perf viz features like clustering, heatmaps, advanced labeling etc.), and general smoothness of user experience (smooth zoom transitions, labels adjusting to rotation and pitch, etc.).

To answer your question: Leaflet.draw is superior to mapbox-gl-draw. mapbox-gl-draw is very lightly maintained and is not as full featured as Leaflet.draw. mapbox-gl-draw sounds like it may also be no longer maintained by Mapbox in the future either - refer to the recent GitHub issue on the repos that hints at this.

There are mapbox-gl-draw plugins to make it comparable to Leaflet.draw but these are features IMO that mapbox-gl-draw probably should have had in the first place.

So, as someone who works with mapbox-gl-js a lot, that is something I see as a gap.

What are the biggest features gaps you think are missing from Leaflet.draw -> gl-draw? definitely hear you on the "very lightly maintained" front, but I may be interested in submitting some PRs to gl-draw that mirror Leaflet.draw functionality if there's specific functionality folks are looking for
For complex GIS stuff in OpenLayers, you can do stuff like connect to a GeoServer instance and edit features with a ready made protocol like WFS-T. I have been involved in making these kind of tools for enterprises, like editing address points and routing paths in the browser, with transactions and edit sets and things like that.

When I was working with this stuff, Leaflet was more "view only" and not so much editing. This was back in the "have to support IE6" days. I remember trying Leaflet for a simple project, but gave up since I could not set a bounding box for panning (the map was only supposed to show a limited area of the world), while OpenLayers seemed had every API feature one could wish. Although more bloated, less polished :)