Commit 99be8b9c authored by ahocevar's avatar ahocevar
Browse files

Merge pull request #36 from calvinmetcalf/WKTupdate

WKT
parents 36e1bb4a f1bfaa34
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
*~
node_modules
.c9revisions
src/projections.js
src/defs/local.js

AUTHORS

0 → 100644
+25 −0
Original line number Diff line number Diff line
Mike Adair <madair@dmsolutions.ca>
Richard Greenwood <rich@greenwoodmap.com>
Calvin Metcalf <calvin.metcalf@gmail.com>
Richard Marsden (http://www.winwaed.com)
#credit for
#src/projCode/gnom.js
#src/projCode/cea.js
T. Mittan
#credit for
#src/projCode/eqdc.js
#src/projCode/equi.js
#src/projCode/merc.js
#src/projCode/mill.js
#src/projCode/omerc.js
#src/projCode/ortho.js
#src/projCode/poly.js
#src/projCode/poly.js
D. Steinwand
#credit for
#src/projCode/merc.js
#src/projCode/laea.js
#src/projCode/moll.js
S. Nelson
#credit for
#src/projCode/moll.js
 No newline at end of file
+3 −12
Original line number Diff line number Diff line
var buildDefs = require('./buildDefs');

module.exports = function(grunt) {
  grunt.initConfig({
		pkg: grunt.file.readJSON('package.json'),
@@ -107,14 +105,7 @@ module.exports = function(grunt) {
	grunt.loadNpmTasks('grunt-contrib-connect');
	grunt.loadNpmTasks('grunt-mocha-phantomjs');
	grunt.registerTask('test', ['connect', 'mocha_phantomjs:before']);
	grunt.registerTask('defs',function(){
		var defs = grunt.option('defs');
		if(defs && defs.indexOf(',')>-1){
			defs = defs.split(',');
		}
		buildDefs.defs(defs);
	});
  grunt.registerTask('amd',['defs','jshint','requirejs:amd','connect','mocha_phantomjs:amd']);
	grunt.registerTask('build',['defs','jshint','requirejs:custom']);
  grunt.registerTask('default', ['defs','jshint','test','requirejs:reg','mocha_phantomjs:after']);
  grunt.registerTask('amd',['jshint','requirejs:amd','connect','mocha_phantomjs:amd']);
	grunt.registerTask('build',['jshint','requirejs:custom']);
  grunt.registerTask('default', ['jshint','test','requirejs:reg','requirejs:amd','mocha_phantomjs:after','mocha_phantomjs:amd']);
}

REFERENCES.md

0 → 100644
+29 −0
Original line number Diff line number Diff line
1. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological Survey
    Professional Paper 1395 (Supersedes USGS Bulletin 1532),
    United State Government Printing Office, Washington D.C., 1987.
2. Snyder, John P. and Voxland, Philip M., "An Album of Map Projections",
    U.S. Geological Survey Professional Paper 1453 ,
    United State Government Printing Office, Washington D.C., 1989.
3. "Cartographic Projection Procedures for the UNIX Environment-
    A User's Manual" by Gerald I. Evenden,
    USGS Open File Report 90-284and Release 4 Interim Reports (2003)
4. Snyder, John P., "Flattening the Earth -
    Two Thousand Years of Map Projections", Univ. Chicago Press, 1993
5. Wolfram Mathworld "Gnomonic Projection"
    http://mathworld.wolfram.com/GnomonicProjection.html
    Accessed: 12th November 2009
6. "New Equal-Area Map Projections for Noncircular Regions", John P. Snyder,
    The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.
7. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological
    Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United
    State Government Printing Office, Washington D.C., 1987.
8. "Software Documentation for GCTP General Cartographic Transformation
    Package", U.S. Geological Survey National Mapping Division, May 1982.
9. Department of Land and Survey Technical Circular 1973/32
    http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf
10. OSG Technical Report 4.1
    http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf
11. Formules et constantes pour le Calcul pour la
    projection cylindrique conforme à axe oblique et pour la transformation entre
    des systèmes de référence.
    http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf
 No newline at end of file

buildDefs.js

deleted100644 → 0
+0 −89
Original line number Diff line number Diff line
var defaultLocals = require('./src/defs/defaultLocals');
var top = "define(function(require, exports, module) {module.exports = function(defs) {defs(";
var end = ")}});";
var pTop = "define(function(require, exports) {";
var pBottom = "});"
var projes = {
  aea: "exports.aea = require('./projCode/aea');",

  lcc: "exports.lcc = require('./projCode/lcc');",
  utm: "exports.utm = require('./projCode/utm');",
  aeqd: "exports.aeqd = require('./projCode/aeqd');",
  eqdc: "exports.eqdc = require('./projCode/eqdc');",

  merc: "exports.merc = require('./projCode/merc');",
  poly: "exports.poly = require('./projCode/poly');",
  mill: "exports.mill = require('./projCode/mill');",
  cea: "exports.cea = require('./projCode/cea');",
  krovak: "exports.krovak = require('./projCode/krovak');",
  sterea: "exports.sterea = require('./projCode/sterea');",

  laea: "exports.laea = require('./projCode/laea');",
  cass: "exports.cass = require('./projCode/cass');",
  eqc: "exports.eqc = require('./projCode/eqc');",
  tmerc: "exports.tmerc = require('./projCode/tmerc');",
  longlat: "exports.longlat = require('./projCode/longlat');exports.identity=exports.longlat;",
  somerc: "exports.somerc = require('./projCode/somerc');",
  sinu: "exports.sinu = require('./projCode/sinu');",
  stere: "exports.stere = require('./projCode/stere');",
  gnom: "exports.gnom = require('./projCode/gnom');",
  omerc: "exports.omerc = require('./projCode/omerc');",
  nzmg: "exports.nzmg = require('./projCode/nzmg');",
  moll: "exports.moll = require('./projCode/moll');",
  vandg: "exports.vandg = require('./projCode/vandg');"
};

var fs = require('fs');

function buildDefs(defs) {
  if (!defs) {
    return writeDefs(defaultLocals);
  }
  else if (typeof defs === 'string') {
    return writeDefs(defaultLocals.filter(filterString(defs)));
  }
  else {
    return writeDefs(defaultLocals.filter(filterArray(defs)));
  }
}

function writeDefs(defs) {
  writeProjes(defs);
  fs.writeFileSync('./src/defs/local.js', top + JSON.stringify(defs) + end, 'utf8');
}

function writeProjes(defs) {
  var out = {};
  defs.forEach(function(d) {
    if (d.projName && (d.projName in projes)) {
      out[d.projName] = projes[d.projName];
    }
  });
  out.longlat = projes.longlat;
  out.identity = out.longlat;
  var outString = pTop;
  for (var key in out) {
    outString += out[key];
  }
  outString += pBottom;
  fs.writeFileSync('./src/projections.js', outString, 'utf8');
}

function filterString(string) {
  var key = string.split(':')[0];
  var value = string.split(':')[1];
  return function(obj) {
    return (key in obj) && obj[key] === value;
  };
}

function filterArray(array) {
  var funcArray = array.map(filterString);
  return function(obj) {
    return funcArray.some(function(f) {
      return f(obj);
    });
  };
}

exports.defs = buildDefs;
Loading