10 Open-Source Projects Every JavaScript Geo Dev Should Know About

That is not tied to a proprietary platform

An article flew by in my Twitter stream, with the title “10 Open-Source Projects Every #JavaScript Geo Dev Should Know About”. As I consider myself a Javascript Geo Dev i thought that there might be som OpenSource gems I’ve missed and clicked the link. The link brought me to esri.com and what I was presented with was this article, listing 10 open source javascripts projects that I’ve never heard of.

Why? Most of them (or all, no links, and I can’t bother to google them all) are ESRIs own libraries, and although OpenSource they are tied to the ESRI platform. In fact, from what I understand, 4 or 5 of them are directly tied to ArcGIS Online.

This made me feel a bit tricked. Not that there are anything wrong with ESRI releasing OpenSource code, but where there is an implicit requirement that you use their paid services, what is the use for others?

But, instead of complaining I’ll present a list of my own, that should be of a wider use to all Javascript Geo devs (although I’m rather certain that most of you’ve heard about most of them already!)

1. OpenLayers 3

We all know OpenLayers 2 (don’t we?) and most of you probably know that the brand new OpenLayers 3 is in the making (beta 4 now!). Lots of features, a complete rewrite and heavy use of the Closure compiler.

2. Leaflet

The web-friendly, lightweight, hipster no-frills mapping library that excels in beeing un-bloated and easy to use. Just try it, seriously!

3. Proj4js

A JavaScript port of proj.4, meaning that you can do all your coordinate re-projections right in the browser!

4. jsts

A JavaScript port of JTS Topology Suite, a library of spatial predicates and functions for processing geometry objects. It works, but is a rather straight Java-port, which leads me to the next entry:

5. Njord.js

Njord.js is a vanilla JS, client side lib for lightweight geoprocessing, envisioned to compete with jsts and heavily inspired by Shapely. It’s written by yours truly and is under development.

6. D3

A JavaScript visualization library for HTML and SVG. I personally know next to nothing about it and haven’t used it, but if you need to add some visualisations to your map app D3 seems to be the way to go.

7. Three.js

Three.js simplifies the task of working with WebGL from Javascript. We all know that 3d is the future, so why not start learning it. If you don’t think that mapping and 3d can be united, take a look at this lib.

8. KuGIS

KuGIS is a browser-driven GIS-application with support for a lot of spatial analysis. Driven by Leaflet and JSTS. Really shows what you can do in the browser these days.

9. Bootleaf

Although I haven’t used it myself I’ve heard some good things about this lib, actually just a “simple, responsive template for building web mapping applications with Bootstrap 3, Leaflet and typeahead.js”.

10. SpatialBB

Also written by yours truly, SpatialBB (or “spatially enabeled Backbone”) is an attempt to merge the MVC-capabilities of Backbone.js with the spatial capabilities of Leaflet. Also a work in (some state of) progress, but I kinda like the idea.

So, that was my list. What did I forget? Are there any gems that’s useful? Please point me in their direction!

3 thoughts on “10 Open-Source Projects Every JavaScript Geo Dev Should Know About

  1. Owen Densmore

    Does JSTS work with Leaflet? I saw in their google group a comment that there is a geometry issue, apparently easily resolved but no info as to how.

    Is this a way Njord.js may differ from JSTS?

    Thanks!

    — Owen

  2. Atle Post author

    I’m not really sure if there is a smooth integration bweteen JSTS and Leaflet. I know that JSTS has a writer/reader for OpenLayers Geometries and WKT. Writing or finding a WKT2Leaflet-plugin shouldn’t be too hard.

    Njord.js is in a state of hiatus now, but I’ve concentrated on GeoJSON as a input/output format for it, and as Leaflet supports GeoJSON this should be no problem. I’ve also thought about making Njord work directly with Leaflet and/or OpenLayers 2/3 Geometries/Features, but nothing is decided yet. If I’m going down that route I think a plugin-style way is preferred.

  3. Chris Bashioum

    Thanks for the article. Just wanted to offer up another JavaScript related project you might be interested in. It is a specification for standardizing inter-widget communications between any widget and a map-widget. It allows anyone’s tool or data widget to interoperate with anyone elses map widget. The spec is at http://www.cmapi.org

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>