@@ 105-134 (lines=30) @@ | ||
102 | ||
103 | lng_d = parseFloat(matches[5]); |
|
104 | lng_m = parseFloat(matches[6]); |
|
105 | ||
106 | lat = lat_sign * (lat_d + (lat_m / 60.0)); |
|
107 | lng = lng_sign * (lng_d + (lng_m / 60.0)); |
|
108 | ||
109 | return new google.maps.LatLng(lat, lng); |
|
110 | } |
|
111 | ||
112 | return null; |
|
113 | }; |
|
114 | ||
115 | ||
116 | Coordinates.fromStringHDMS = function (coordsString) { |
|
117 | 'use strict'; |
|
118 | ||
119 | var matches, pattern, |
|
120 | lat, lat_sign, lat_d, lat_m, lat_s, |
|
121 | lng, lng_sign, lng_d, lng_m, lng_s; |
|
122 | ||
123 | // H DDD MM SS.SSS |
|
124 | pattern = /^[^A-Z0-9.\-]*([NS])[^A-Z0-9.\-]*(\d+)[^A-Z0-9.\-]+(\d+)[^A-Z0-9.\-]+([\d\.]+)[^A-Z0-9.\-]+([EW])[^A-Z0-9.\-]*(\d+)[^A-Z0-9.\-]+(\d+)[^A-Z0-9.\-]+([\d\.]+)[^A-Z0-9.\-]*$/i; |
|
125 | // |
|
126 | matches = coordsString.toUpperCase().trim().match(pattern); |
|
127 | if (matches) { |
|
128 | lat_sign = (matches[1] === 'S') ? -1 : 1; |
|
129 | lng_sign = (matches[5] === 'W') ? -1 : 1; |
|
130 | ||
131 | lat_d = parseFloat(matches[2]); |
|
132 | lat_m = parseFloat(matches[3]); |
|
133 | lat_s = parseFloat(matches[4]); |
|
134 | ||
135 | lng_d = parseFloat(matches[6]); |
|
136 | lng_m = parseFloat(matches[7]); |
|
137 | lng_s = parseFloat(matches[8]); |
|
@@ 74-102 (lines=29) @@ | ||
71 | coords = this.fromStringHD(coordsString); |
|
72 | if (coords) { |
|
73 | return coords; |
|
74 | } |
|
75 | ||
76 | coords = this.fromStringD(coordsString); |
|
77 | if (coords) { |
|
78 | return coords; |
|
79 | } |
|
80 | ||
81 | return null; |
|
82 | }; |
|
83 | ||
84 | ||
85 | Coordinates.fromStringHDM = function (coordsString) { |
|
86 | 'use strict'; |
|
87 | ||
88 | var matches, pattern, |
|
89 | lat, lat_sign, lat_d, lat_m, |
|
90 | lng, lng_sign, lng_d, lng_m; |
|
91 | ||
92 | // H DDD MM.MMM |
|
93 | pattern = /^[^A-Z0-9.\-]*([NS])[^A-Z0-9.\-]*(\d+)[^A-Z0-9.\-]+([\d\.]+)[^A-Z0-9.\-]+([EW])[^A-Z0-9.\-]*(\d+)[^A-Z0-9.\-]+([\d\.]+)[^A-Z0-9.\-]*$/i; |
|
94 | // |
|
95 | matches = coordsString.toUpperCase().trim().match(pattern); |
|
96 | if (matches) { |
|
97 | lat_sign = (matches[1] === 'S') ? -1 : 1; |
|
98 | lng_sign = (matches[4] === 'W') ? -1 : 1; |
|
99 | ||
100 | lat_d = parseFloat(matches[2]); |
|
101 | lat_m = parseFloat(matches[3]); |
|
102 | ||
103 | lng_d = parseFloat(matches[5]); |
|
104 | lng_m = parseFloat(matches[6]); |
|
105 |