geo-coordinates-parser 1.5.7 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +8 -6
  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 -419
  50. package/failFormats.js +0 -17
  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/test.js +0 -66
  56. package/testFormatConverter.js +0 -8
  57. package/testFormats.json +0 -352
  58. package/testIndividual.js +0 -21
  59. package/testformats.js +0 -351
  60. package/toCoordinateFormat.js +0 -52
package/testformats.js DELETED
@@ -1,351 +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: '18.24S 22.45E', //this is read as degrees and minutes
249
- verbatimLatitude: '18.24S',
250
- verbatimLongitude: '22.45E',
251
- decimalLatitude: -18.4,
252
- decimalLongitude: 22.75
253
- },
254
- {
255
- verbatimCoordinates: '27deg 15min 45.2sec S 18deg 32min 53.7sec E',
256
- verbatimLatitude: '27deg 15min 45.2sec S',
257
- verbatimLongitude: '18deg 32min 53.7sec E',
258
- decimalLatitude: -27.2625555555555556,
259
- decimalLongitude: 18.54825
260
- },
261
- {
262
- verbatimCoordinates: '-23.3245° S / 28.2344° E',
263
- verbatimLatitude: '-23.3245° S',
264
- verbatimLongitude: '28.2344° E',
265
- decimalLatitude: -23.3245,
266
- decimalLongitude: 28.2344
267
- },
268
- {
269
- verbatimCoordinates: '40° 26.7717 -79° 56.93172',
270
- verbatimLatitude: '40° 26.7717',
271
- verbatimLongitude: '-79° 56.93172',
272
- decimalLatitude: 40.446195,
273
- decimalLongitude: -79.948862
274
-
275
- },
276
- {
277
- verbatimCoordinates: '27.15.45S 18.32.53E',
278
- verbatimLatitude: '27.15.45S',
279
- verbatimLongitude: '18.32.53E',
280
- decimalLatitude: -27.2625,
281
- decimalLongitude: 18.548055
282
- },
283
- {
284
- verbatimCoordinates: '-27.15.45 18.32.53',
285
- verbatimLatitude: '-27.15.45',
286
- verbatimLongitude: '18.32.53',
287
- decimalLatitude: -27.2625,
288
- decimalLongitude: 18.548055
289
- },
290
- {
291
- verbatimCoordinates: '27.15.45.2S 18.32.53.4E',
292
- verbatimLatitude: '27.15.45.2S',
293
- verbatimLongitude: '18.32.53.4E',
294
- decimalLatitude: -27.262556,
295
- decimalLongitude: 18.548167
296
- },
297
- {
298
- verbatimCoordinates: '27.15.45,2S 18.32.53,4E',
299
- verbatimLatitude: '27.15.45,2S',
300
- verbatimLongitude: '18.32.53,4E',
301
- decimalLatitude: -27.262556,
302
- decimalLongitude: 18.548167
303
- },
304
- {
305
- verbatimCoordinates: 'S23.43563 ° E22.45634 °', //decimals with spaces before the symbol!!
306
- verbatimLatitude: 'S23.43563 °',
307
- verbatimLongitude: 'E22.45634 °',
308
- decimalLatitude: -23.43563,
309
- decimalLongitude: 22.45634
310
- },
311
- {
312
- verbatimCoordinates: '27,71372° S 23,07771° E', //decimals with commas
313
- verbatimLatitude: '27,71372° S',
314
- verbatimLongitude: '23,07771° E',
315
- decimalLatitude: -27.71372,
316
- decimalLongitude: 23.07771
317
- },
318
- {
319
- verbatimCoordinates: '27.45.34 S 23.23.23 E',
320
- verbatimLatitude: '27.45.34 S',
321
- verbatimLongitude: '23.23.23 E',
322
- decimalLatitude: -27.759444,
323
- decimalLongitude: 23.38972222
324
- },
325
- {
326
- verbatimCoordinates: 'S 27.45.34 E 23.23.23',
327
- verbatimLatitude: 'S 27.45.34',
328
- verbatimLongitude: 'E 23.23.23',
329
- decimalLatitude: -27.759444,
330
- decimalLongitude: 23.38972222
331
- }
332
- ]
333
-
334
-
335
-
336
- function getAllTestFormats() {
337
- var arr1 = []
338
- coordsParserFormats.forEach(item => {
339
- if (item.decimalLatitude){
340
- arr1.push(item)
341
- }
342
- else {
343
- arr1.push({...item, ...coordsParserDecimals})
344
- }
345
- })
346
-
347
- return [...arr1, ...coordsRegexFormats, ...otherFormats]
348
-
349
- }
350
-
351
- 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