Cartagen Wiki
Cartagen Two Proposal

Here we are outlining key elements of a possible Cartagen 2.0 release.


  • rafael.js abstraction (upstream to Fred)
  • Consolidation of Projection, conversion to spher merc standards
  • creation of Scale class with easy conversions, meters/degrees/pixels
  • separation of Cartagen javascript code from Ruby - server vs. client repos
  • formalizing interconnects between cartagen and a parent codebase for server/client agnosticism
  • test suite - base on a test map a la Acid2
  • separate Knitter and others into mapper toolkit, with raster analysis features – NDVI, etc
  • z-index in GSS spec, use as basis for multipass rendering (casings, dotted lines, consolidate stroke() calls for optimization)
  • x,y for mercator, use scale (pix_per_unit), with Projection.units = meters as default


  • dotted, styled line drawing and label-follow-line code
  • tween_to, tween_zoom_to, underlying tween ability (upstream to Fred)
  • slider for detail_per_scale, to speed up render or improve detail
  • clone coastlines from Halcyon or Mapnik


  • cleanup and formalization of Tool/Toolbar classes
  • Standardize and smoove out widgets (Modalbox?) and such
  • debug and optimization for devices (tablets!)
  • Cartagen.setup({type:’fullscreen’}) - or ‘div’ or ‘touch’, or ‘auto’
  • Cartagen.add(feature)
  • Cartagen.features =
  • Full Cartagen map editor, generating OSM JSON
  • Style editor with color wheel, line styling (share with Fred)
  • measure_distance(lat1,lon1,lat2,lon2) - or extract_way() with live mouse UI, follow_ways option, follow_tagged_way(‘highway’)
  • .wizard() call for GUI map setup
  • implement hash signaling for geohashing – when you move, the URL becomes or reverse geocoded placename, zoom, etc


  • Import class - native import of GeoJSON
  • high-res, tiled, geotiff, PDF export WITH traced material + labelling
  • On feature import, separately save pure features for bbox export in a popup (json) move this to the client side
  • TMS generation using to_data_URL or similar – perhaps stored in localStorage?

Extensions/Plugins system

  • so building on Cartagen can be reproduced and ported to other projects