Mercurial > pub > ImplabJs
comparison src/djol/format/coords.js @ 10:8705103f074f
Слияние
| author | cin |
|---|---|
| date | Mon, 21 Aug 2017 18:03:00 +0300 |
| parents | f0035923ff3e |
| children |
comparison
equal
deleted
inserted
replaced
| 9:37e9e6bbe87a | 10:8705103f074f |
|---|---|
| 1 define( | |
| 2 [ "dojo/i18n!./nls/coords", "implab/text/format", "implab/safe" ], | |
| 3 | |
| 4 function(nls, format, safe) { | |
| 5 | |
| 6 var formatDMS = function(coord) { | |
| 7 return formatSD(coord, nls.dmsPattern); | |
| 8 }; | |
| 9 | |
| 10 var formatDM = function(coord) { | |
| 11 return formatSD(coord, nls.dmPattern); | |
| 12 }; | |
| 13 | |
| 14 var formatD = function(coord) { | |
| 15 return formatSD(coord, nls.dPattern); | |
| 16 }; | |
| 17 | |
| 18 /** | |
| 19 * pattern: | |
| 20 * | |
| 21 * {0} - signed floating point number - latitude | |
| 22 * | |
| 23 * {1} - positive floating point number - minutes part of latitude | |
| 24 * | |
| 25 * {2} - positive floating point number - seconds part of latitude | |
| 26 * | |
| 27 * {3} - localized hemisphere sign: north or south | |
| 28 * | |
| 29 * {4} - signed floating point number - longitude | |
| 30 * | |
| 31 * {5} - positive floating point number - minutes part of longitude | |
| 32 * | |
| 33 * {6} - positive floating point number - seconds part of longitude | |
| 34 * | |
| 35 * {7} - localized hemisphere sign: east or west | |
| 36 */ | |
| 37 var formatSD = function(coord, pattern) { | |
| 38 safe.argumentNotNull(coord, "coord"); | |
| 39 if (!pattern) | |
| 40 pattern = nls.sdPattern; | |
| 41 var x = (coord[0] % 360 + 540) % 360 - 180, y = (coord[1] % 180 + 270) % 180 - 90; | |
| 42 | |
| 43 return format(pattern, y, Math.abs((y * 60) % 60), Math | |
| 44 .abs((y * 3600) % 60), y >= 0 ? nls.north : nls.south, x, Math | |
| 45 .abs((x * 60) % 60), Math.abs((x * 3600) % 60), x >= 0 | |
| 46 ? nls.east | |
| 47 : nls.west); | |
| 48 }; | |
| 49 | |
| 50 var cls = function(fmt) { | |
| 51 switch (fmt) { | |
| 52 case "DMS": | |
| 53 return formatDMS; | |
| 54 case "DM": | |
| 55 return formatDM; | |
| 56 case "D": | |
| 57 return formatD; | |
| 58 case "SD": | |
| 59 return formatSD; | |
| 60 default: | |
| 61 if (!fmt) | |
| 62 return formatSD; | |
| 63 else | |
| 64 return function(coord) { | |
| 65 return formatSD(coord, fmt); | |
| 66 } | |
| 67 } | |
| 68 }; | |
| 69 | |
| 70 return cls; | |
| 71 }); |
