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