annotate src/djol/format/coords.js @ 20:9718e8de0cb2

Слияние
author nickolay
date Fri, 06 Oct 2017 09:17:41 +0300
parents f0035923ff3e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
1 define(
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
2 [ "dojo/i18n!./nls/coords", "implab/text/format", "implab/safe" ],
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
3
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
4 function(nls, format, safe) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
5
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
6 var formatDMS = function(coord) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
7 return formatSD(coord, nls.dmsPattern);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
8 };
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
9
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
10 var formatDM = function(coord) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
11 return formatSD(coord, nls.dmPattern);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
12 };
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
13
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
14 var formatD = function(coord) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
15 return formatSD(coord, nls.dPattern);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
16 };
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
17
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
18 /**
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
19 * pattern:
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
20 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
21 * {0} - signed floating point number - latitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
22 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
23 * {1} - positive floating point number - minutes part of latitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
24 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
25 * {2} - positive floating point number - seconds part of latitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
26 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
27 * {3} - localized hemisphere sign: north or south
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
28 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
29 * {4} - signed floating point number - longitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
30 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
31 * {5} - positive floating point number - minutes part of longitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
32 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
33 * {6} - positive floating point number - seconds part of longitude
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
34 *
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
35 * {7} - localized hemisphere sign: east or west
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
36 */
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
37 var formatSD = function(coord, pattern) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
38 safe.argumentNotNull(coord, "coord");
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
39 if (!pattern)
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
40 pattern = nls.sdPattern;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
41 var x = (coord[0] % 360 + 540) % 360 - 180, y = (coord[1] % 180 + 270) % 180 - 90;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
42
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
43 return format(pattern, y, Math.abs((y * 60) % 60), Math
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
44 .abs((y * 3600) % 60), y >= 0 ? nls.north : nls.south, x, Math
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
45 .abs((x * 60) % 60), Math.abs((x * 3600) % 60), x >= 0
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
46 ? nls.east
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
47 : nls.west);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
48 };
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
49
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
50 var cls = function(fmt) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
51 switch (fmt) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
52 case "DMS":
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
53 return formatDMS;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
54 case "DM":
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
55 return formatDM;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
56 case "D":
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
57 return formatD;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
58 case "SD":
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
59 return formatSD;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
60 default:
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
61 if (!fmt)
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
62 return formatSD;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
63 else
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
64 return function(coord) {
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
65 return formatSD(coord, fmt);
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
66 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
67 }
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
68 };
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
69
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
70 return cls;
f0035923ff3e добавлена библиотека для работы с openlayers 3+
cin
parents:
diff changeset
71 });