geo-coordinates-parser 1.5.8 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. package/README.md +5 -4
  2. package/dist/cjs/converter.d.ts +15 -0
  3. package/dist/cjs/converter.js +363 -0
  4. package/dist/cjs/merge.d.ts +2 -0
  5. package/dist/cjs/merge.js +12 -0
  6. package/dist/cjs/package.json +3 -0
  7. package/dist/cjs/regex.d.ts +4 -0
  8. package/dist/cjs/regex.js +16 -0
  9. package/dist/cjs/tests/failFormats.d.ts +2 -0
  10. package/dist/cjs/tests/failFormats.js +26 -0
  11. package/dist/cjs/tests/makeTestFormatsJSON.d.ts +1 -0
  12. package/dist/cjs/tests/makeTestFormatsJSON.js +14 -0
  13. package/dist/cjs/tests/test.d.ts +1 -0
  14. package/dist/cjs/tests/test.js +56 -0
  15. package/dist/cjs/tests/testFormatConverter.d.ts +1 -0
  16. package/dist/cjs/tests/testFormatConverter.js +11 -0
  17. package/dist/cjs/tests/testIndividual.d.ts +1 -0
  18. package/dist/cjs/tests/testIndividual.js +26 -0
  19. package/dist/cjs/tests/testformats.d.ts +2 -0
  20. package/dist/cjs/tests/testformats.js +359 -0
  21. package/dist/cjs/toCoordinateFormat.d.ts +6 -0
  22. package/dist/cjs/toCoordinateFormat.js +42 -0
  23. package/dist/mjs/converter.d.ts +15 -0
  24. package/dist/mjs/converter.js +358 -0
  25. package/dist/mjs/merge.d.ts +2 -0
  26. package/dist/mjs/merge.js +6 -0
  27. package/dist/mjs/package.json +3 -0
  28. package/dist/mjs/regex.d.ts +4 -0
  29. package/dist/mjs/regex.js +10 -0
  30. package/dist/mjs/tests/failFormats.d.ts +2 -0
  31. package/dist/mjs/tests/failFormats.js +24 -0
  32. package/dist/mjs/tests/makeTestFormatsJSON.d.ts +1 -0
  33. package/dist/mjs/tests/makeTestFormatsJSON.js +9 -0
  34. package/dist/mjs/tests/test.d.ts +1 -0
  35. package/dist/mjs/tests/test.js +51 -0
  36. package/dist/mjs/tests/testFormatConverter.d.ts +1 -0
  37. package/dist/mjs/tests/testFormatConverter.js +6 -0
  38. package/dist/mjs/tests/testIndividual.d.ts +1 -0
  39. package/dist/mjs/tests/testIndividual.js +21 -0
  40. package/dist/mjs/tests/testformats.d.ts +2 -0
  41. package/dist/mjs/tests/testformats.js +357 -0
  42. package/dist/mjs/toCoordinateFormat.d.ts +6 -0
  43. package/dist/mjs/toCoordinateFormat.js +40 -0
  44. package/package.json +50 -42
  45. package/bundle/demo.html +0 -39
  46. package/bundle/geocoordsparser.js +0 -1
  47. package/bundle/workflow.txt +0 -8
  48. package/conf.py +0 -3
  49. package/converter.js +0 -443
  50. package/failFormats.js +0 -24
  51. package/formatsOnly.json +0 -41
  52. package/geocoordsparser.js +0 -0
  53. package/makeTestFormatsJSON.js +0 -11
  54. package/merge.js +0 -9
  55. package/regex.js +0 -20
  56. package/test.js +0 -66
  57. package/testFormatConverter.js +0 -8
  58. package/testFormats.json +0 -352
  59. package/testIndividual.js +0 -22
  60. package/testformats.js +0 -372
  61. package/toCoordinateFormat.js +0 -52
package/testformats.js DELETED
@@ -1,372 +0,0 @@
1
- //return an array of coordinate strings for testing
2
-
3
-
4
- //coordinations-parser formats
5
- //https://www.npmjs.com/package/coordinate-parser
6
- var coordsParserFormats = [
7
- {
8
- verbatimCoordinates: '40.123, -74.123',
9
- verbatimLatitude: '40.123',
10
- verbatimLongitude: '-74.123'
11
- },
12
- {
13
- verbatimCoordinates: '40.123° N 74.123° W',
14
- verbatimLatitude: '40.123° N',
15
- verbatimLongitude: '74.123° W'
16
- },
17
- {
18
- verbatimCoordinates: '40.123° N 74.123° W',
19
- verbatimLatitude: '40.123° N',
20
- verbatimLongitude: '74.123° W'
21
- },
22
- {
23
- verbatimCoordinates: '40° 7´ 22.8" N 74° 7´ 22.8" W',
24
- verbatimLatitude: '40° 7´ 22.8" N',
25
- verbatimLongitude: '74° 7´ 22.8" W'
26
- },
27
- {
28
- verbatimCoordinates: '40° 7.38’ , -74° 7.38’',
29
- verbatimLatitude: '40° 7.38’',
30
- verbatimLongitude: '-74° 7.38’'
31
- },
32
- {
33
- verbatimCoordinates: 'N40°7’22.8’’, W74°7’22.8’’',
34
- verbatimLatitude: 'N40°7’22.8’’',
35
- verbatimLongitude: 'W74°7’22.8’’'
36
- },
37
- {
38
- verbatimCoordinates: '40°7’22.8"N, 74°7’22.8"W',
39
- verbatimLatitude: '40°7’22.8"N',
40
- verbatimLongitude: '74°7’22.8"W'
41
- },
42
- {
43
- verbatimCoordinates: '40°7\'22.8"N, 74°7\'22.8"W',
44
- verbatimLatitude: '40°7\'22.8"N',
45
- verbatimLongitude: '74°7\'22.8"W'
46
- },
47
- {
48
- verbatimCoordinates: '40 7 22.8, -74 7 22.8',
49
- verbatimLatitude: '40 7 22.8',
50
- verbatimLongitude: '-74 7 22.8'
51
- },
52
- {
53
- verbatimCoordinates: '40.123 -74.123',
54
- verbatimLatitude: '40.123',
55
- verbatimLongitude: '-74.123'
56
- },
57
- {
58
- verbatimCoordinates: '40.123°,-74.123°',
59
- verbatimLatitude: '40.123°',
60
- verbatimLongitude: '-74.123°'
61
- },
62
- {
63
- verbatimCoordinates: '40.123N74.123W',
64
- verbatimLatitude: '40.123N',
65
- verbatimLongitude: '74.123W'
66
- },
67
- {
68
- verbatimCoordinates: '4007.38N7407.38W',
69
- verbatimLatitude: '4007.38N',
70
- verbatimLongitude: '7407.38W'
71
- },
72
- {
73
- verbatimCoordinates: '40°7’22.8"N, 74°7’22.8"W',
74
- verbatimLatitude: '40°7’22.8"N',
75
- verbatimLongitude: '74°7’22.8"W'
76
- },
77
- {
78
- verbatimCoordinates: '400722.8N740722.8W',
79
- verbatimLatitude: '400722.8N',
80
- verbatimLongitude: '740722.8W'
81
- },
82
- {
83
- verbatimCoordinates: 'N 40 7.38 W 74 7.38',
84
- verbatimLatitude: 'N 40 7.38',
85
- verbatimLongitude: 'W 74 7.38'
86
- },
87
- {
88
- verbatimCoordinates: '40:7:22.8N 74:7:22.8W',
89
- verbatimLatitude: '40:7:22.8N',
90
- verbatimLongitude: '74:7:22.8W'
91
- },
92
- {
93
- verbatimCoordinates: '40:7:23N,74:7:23W',
94
- verbatimLatitude: '40:7:23N',
95
- verbatimLongitude: '74:7:23W',
96
- decimalLatitude: 40.1230555555,
97
- decimalLongitude: -74.1230555555
98
- },
99
- {
100
- verbatimCoordinates: '40°7’23"N 74°7’23"W',
101
- verbatimLatitude: '40°7’23"N',
102
- verbatimLongitude: '74°7’23"W',
103
- decimalLatitude: 40.1230555555,
104
- decimalLongitude: -74.12305555555555
105
- },
106
- {
107
- verbatimCoordinates: '40°7’23"S 74°7’23"E',
108
- verbatimLatitude: '40°7’23"S',
109
- verbatimLongitude: '74°7’23"E',
110
- decimalLatitude: -40.1230555555,
111
- decimalLongitude: 74.12305555555555
112
- },
113
- {
114
- verbatimCoordinates: '40°7’23" -74°7’23"',
115
- verbatimLatitude: '40°7’23"',
116
- verbatimLongitude: '-74°7’23"',
117
- decimalLatitude: 40.1230555555,
118
- decimalLongitude: -74.123055555
119
- },
120
- {
121
- verbatimCoordinates: '40d 7’ 23" N 74d 7’ 23" W',
122
- verbatimLatitude: '40d 7’ 23" N',
123
- verbatimLongitude: '74d 7’ 23" W',
124
- decimalLatitude: 40.1230555555,
125
- decimalLongitude: -74.123055555
126
- },
127
- {
128
- verbatimCoordinates: '40.123N 74.123W',
129
- verbatimLatitude: '40.123N',
130
- verbatimLongitude: '74.123W'
131
- },
132
- {
133
- verbatimCoordinates: '40° 7.38, -74° 7.38',
134
- verbatimLatitude: '40° 7.38',
135
- verbatimLongitude: '-74° 7.38'
136
- },
137
- {
138
- verbatimCoordinates: '40° 7.38, -74° 7.38',
139
- verbatimLatitude: '40° 7.38',
140
- verbatimLongitude: '-74° 7.38'
141
- },
142
- {
143
- verbatimCoordinates: '40 7 22.8; -74 7 22.8', //semicolon separator
144
- verbatimLatitude: '40 7 22.8',
145
- verbatimLongitude: '-74 7 22.8'
146
- }
147
- ]
148
-
149
- var coordsParserDecimals = {
150
- decimalLatitude: 40.123,
151
- decimalLongitude: -74.123
152
- }
153
-
154
- //formats from https://gist.github.com/moole/3707127/337bd31d813a10abcf55084381803e5bbb0b20dc
155
-
156
- var coordsRegexFormats = [
157
- {
158
- verbatimCoordinates: '50°4\'17.698"south, 14°24\'2.826"east',
159
- verbatimLatitude: '50°4\'17.698"south',
160
- verbatimLongitude: '14°24\'2.826"east',
161
- decimalLatitude: -50.0715827777777778,
162
- decimalLongitude: 14.400785
163
-
164
- },
165
- {
166
- verbatimCoordinates: '50d4m17.698S 14d24m2.826E',
167
- verbatimLatitude: '50d4m17.698S',
168
- verbatimLongitude: '14d24m2.826E',
169
- decimalLatitude: -50.0715827777777778,
170
- decimalLongitude: 14.400785
171
- },
172
- {
173
- verbatimCoordinates: '40:26:46N,79:56:55W',
174
- verbatimLatitude: '40:26:46N',
175
- verbatimLongitude: '79:56:55W',
176
- decimalLatitude: 40.4461111111111111,
177
- decimalLongitude: -79.9486111111111111
178
- },
179
- {
180
- verbatimCoordinates: '40:26:46.302N 79:56:55.903W',
181
- verbatimLatitude: '40:26:46.302N',
182
- verbatimLongitude: '79:56:55.903W',
183
- decimalLatitude: 40.446195,
184
- decimalLongitude: -79.9488619444444444
185
- },
186
- {
187
- verbatimCoordinates: '40°26′47″N 79°58′36″W',
188
- verbatimLatitude: '40°26′47″N',
189
- verbatimLongitude: '79°58′36″W',
190
- decimalLatitude: 40.4463888888888889,
191
- decimalLongitude: -79.9766666666666667
192
-
193
- },
194
- {
195
- verbatimCoordinates: '40d 26′ 47″ N 79d 58′ 36″ W',
196
- verbatimLatitude: '40d 26′ 47″ N',
197
- verbatimLongitude: '79d 58′ 36″ W',
198
- decimalLatitude: 40.4463888888888889,
199
- decimalLongitude: -79.9766666666666667
200
- },
201
- {
202
- verbatimCoordinates: '40.446195N 79.948862W',
203
- verbatimLatitude: '40.446195N',
204
- verbatimLongitude: '79.948862W',
205
- decimalLatitude: 40.446195,
206
- decimalLongitude: -79.948862
207
- },
208
- {
209
- verbatimCoordinates: '40,446195° 79,948862°',
210
- verbatimLatitude: '40,446195°',
211
- verbatimLongitude: '79,948862°',
212
- decimalLatitude: 40.446195,
213
- decimalLongitude: 79.948862
214
- },
215
- {
216
- verbatimCoordinates: '40° 26.7717, -79° 56.93172',
217
- verbatimLatitude: '40° 26.7717',
218
- verbatimLongitude: '-79° 56.93172',
219
- decimalLatitude: 40.446195,
220
- decimalLongitude: -79.948862
221
- },
222
- {
223
- verbatimCoordinates: '40.446195, -79.948862',
224
- verbatimLatitude: '40.446195',
225
- verbatimLongitude: '-79.948862',
226
- decimalLatitude: 40.446195,
227
- decimalLongitude: -79.948862
228
- },
229
- {
230
- verbatimCoordinates: '40.123256; -74.123256', //testing semicolon
231
- verbatimLatitude: '40.123256',
232
- verbatimLongitude: '-74.123256',
233
- decimalLatitude: 40.123256,
234
- decimalLongitude: -74.123256
235
- },
236
- {
237
- verbatimCoordinates: '18°24S 22°45E', //this is read as degrees and minutes
238
- verbatimLatitude: '18°24S',
239
- verbatimLongitude: '22°45E',
240
- decimalLatitude: -18.4,
241
- decimalLongitude: 22.75
242
- }
243
- ]
244
-
245
- var otherFormats = [
246
- // additional formats we've encountered
247
- {
248
- verbatimCoordinates: '10.432342S 10.6345345E', //this is read as degrees and minutes
249
- verbatimLatitude: '10.432342S',
250
- verbatimLongitude: '10.6345345E',
251
- decimalLatitude: -10.432342,
252
- decimalLongitude: 10.6345345
253
- },
254
- {
255
- verbatimCoordinates: '10.00S 10.00E', //this is read as degrees and minutes
256
- verbatimLatitude: '10.00S',
257
- verbatimLongitude: '10.00E',
258
- decimalLatitude: -10.00000,
259
- decimalLongitude: 10.00000
260
- },
261
- {
262
- verbatimCoordinates: '00.00S 01.00E', //this is read as degrees and minutes
263
- verbatimLatitude: '00.00S',
264
- verbatimLongitude: '01.00E',
265
- decimalLatitude: 0.00000,
266
- decimalLongitude: 1.00000
267
- },
268
- {
269
- verbatimCoordinates: '18.24S 22.45E', //this is read as degrees and minutes
270
- verbatimLatitude: '18.24S',
271
- verbatimLongitude: '22.45E',
272
- decimalLatitude: -18.4,
273
- decimalLongitude: 22.75
274
- },
275
- {
276
- verbatimCoordinates: '27deg 15min 45.2sec S 18deg 32min 53.7sec E',
277
- verbatimLatitude: '27deg 15min 45.2sec S',
278
- verbatimLongitude: '18deg 32min 53.7sec E',
279
- decimalLatitude: -27.2625555555555556,
280
- decimalLongitude: 18.54825
281
- },
282
- {
283
- verbatimCoordinates: '-23.3245° S / 28.2344° E',
284
- verbatimLatitude: '-23.3245° S',
285
- verbatimLongitude: '28.2344° E',
286
- decimalLatitude: -23.3245,
287
- decimalLongitude: 28.2344
288
- },
289
- {
290
- verbatimCoordinates: '40° 26.7717 -79° 56.93172',
291
- verbatimLatitude: '40° 26.7717',
292
- verbatimLongitude: '-79° 56.93172',
293
- decimalLatitude: 40.446195,
294
- decimalLongitude: -79.948862
295
-
296
- },
297
- {
298
- verbatimCoordinates: '27.15.45S 18.32.53E',
299
- verbatimLatitude: '27.15.45S',
300
- verbatimLongitude: '18.32.53E',
301
- decimalLatitude: -27.2625,
302
- decimalLongitude: 18.548055
303
- },
304
- {
305
- verbatimCoordinates: '-27.15.45 18.32.53',
306
- verbatimLatitude: '-27.15.45',
307
- verbatimLongitude: '18.32.53',
308
- decimalLatitude: -27.2625,
309
- decimalLongitude: 18.548055
310
- },
311
- {
312
- verbatimCoordinates: '27.15.45.2S 18.32.53.4E',
313
- verbatimLatitude: '27.15.45.2S',
314
- verbatimLongitude: '18.32.53.4E',
315
- decimalLatitude: -27.262556,
316
- decimalLongitude: 18.548167
317
- },
318
- {
319
- verbatimCoordinates: '27.15.45,2S 18.32.53,4E',
320
- verbatimLatitude: '27.15.45,2S',
321
- verbatimLongitude: '18.32.53,4E',
322
- decimalLatitude: -27.262556,
323
- decimalLongitude: 18.548167
324
- },
325
- {
326
- verbatimCoordinates: 'S23.43563 ° E22.45634 °', //decimals with spaces before the symbol!!
327
- verbatimLatitude: 'S23.43563 °',
328
- verbatimLongitude: 'E22.45634 °',
329
- decimalLatitude: -23.43563,
330
- decimalLongitude: 22.45634
331
- },
332
- {
333
- verbatimCoordinates: '27,71372° S 23,07771° E', //decimals with commas
334
- verbatimLatitude: '27,71372° S',
335
- verbatimLongitude: '23,07771° E',
336
- decimalLatitude: -27.71372,
337
- decimalLongitude: 23.07771
338
- },
339
- {
340
- verbatimCoordinates: '27.45.34 S 23.23.23 E',
341
- verbatimLatitude: '27.45.34 S',
342
- verbatimLongitude: '23.23.23 E',
343
- decimalLatitude: -27.759444,
344
- decimalLongitude: 23.38972222
345
- },
346
- {
347
- verbatimCoordinates: 'S 27.45.34 E 23.23.23',
348
- verbatimLatitude: 'S 27.45.34',
349
- verbatimLongitude: 'E 23.23.23',
350
- decimalLatitude: -27.759444,
351
- decimalLongitude: 23.38972222
352
- }
353
- ]
354
-
355
-
356
-
357
- function getAllTestFormats() {
358
- var arr1 = []
359
- coordsParserFormats.forEach(item => {
360
- if (item.decimalLatitude){
361
- arr1.push(item)
362
- }
363
- else {
364
- arr1.push({...item, ...coordsParserDecimals})
365
- }
366
- })
367
-
368
- return [...arr1, ...coordsRegexFormats, ...otherFormats]
369
-
370
- }
371
-
372
- module.exports = getAllTestFormats();
@@ -1,52 +0,0 @@
1
-
2
- //borrowed from https://www.codegrepper.com/code-examples/javascript/javascript+converting+latitude+longitude+to+gps+coordinates
3
-
4
- /**
5
- * Converts decimalCoordinates to other formats commonly used
6
- * @param {*} format Either DMS or DM
7
- */
8
- function toCoordinateFormat(format) {
9
-
10
- if(!['DMS', 'DM'].includes(format)) throw new Error('invalid format specified')
11
-
12
- if(this.decimalCoordinates && this.decimalCoordinates.trim()) {
13
- const parts = this.decimalCoordinates.split(',').map(x => x.trim())
14
- const convertedLat = convert(parts[0], format, true)
15
- const convertedLong = convert(parts[1], format, false)
16
- return `${convertedLat}, ${convertedLong}`
17
- }
18
- else {
19
- throw new Error('no decimal coordinates to convert')
20
- }
21
- }
22
-
23
- //assumes everything is valid...
24
- function convert(coordString, format, isLatitude) {
25
-
26
- const coord = Number(coordString)
27
-
28
- let direction
29
- if (isLatitude) {
30
- direction = coord >= 0 ? "N" : "S";
31
- }
32
- else {
33
- direction = coord >= 0 ? "E" : "W";
34
- }
35
-
36
- const absolute = Math.abs(coord);
37
-
38
- const degrees = Math.floor(absolute);
39
- const minutesNotTruncated = (absolute - degrees) * 60;
40
-
41
- if(format == 'DM') {
42
- return `${degrees}° ${minutesNotTruncated.toFixed(3).replace(/\.0+$/, '')}' ${direction}`;
43
- }
44
-
45
- //else
46
- const minutes = Math.floor(minutesNotTruncated);
47
- const seconds = ((minutesNotTruncated - minutes) * 60).toFixed(1).replace(/\.0$/, '');
48
-
49
- return `${degrees}° ${minutes}' ${seconds}" ${direction}`;
50
- }
51
-
52
- module.exports = toCoordinateFormat