Loading .gitignore +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 Gruntfile.js +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'), Loading Loading @@ -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.jsdeleted 100644 → 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
.gitignore +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
Gruntfile.js +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'), Loading Loading @@ -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.jsdeleted 100644 → 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;