function dmsToDecimal(degrees, minutes, seconds) {
return degrees + (minutes / 60) + (seconds / 3600);
}
function parseCoordinateString(coordinateString) {
const [longitudeStr, latitudeStr] = coordinateString.split(',');
const longitudeMatch = /(\d+)°(\d+)'([\d.]+)"/.exec(longitudeStr);
const longitudeDegrees = parseInt(longitudeMatch[1]);
const longitudeMinutes = parseInt(longitudeMatch[2]);
const longitudeSeconds = parseFloat(longitudeMatch[3]);
const decimalLongitude = dmsToDecimal(longitudeDegrees, longitudeMinutes, longitudeSeconds);
const latitudeMatch = /(\d+)°(\d+)'([\d.]+)"/.exec(latitudeStr);
const latitudeDegrees = parseInt(latitudeMatch[1]);
const latitudeMinutes = parseInt(latitudeMatch[2]);
const latitudeSeconds = parseFloat(latitudeMatch[3]);
const decimalLatitude = dmsToDecimal(latitudeDegrees, latitudeMinutes, latitudeSeconds);
return {
longitude: decimalLongitude,
latitude: decimalLatitude
};
}
const coordinateString = "118°13'00\",37°09'49\"";
const decimalCoordinate = parseCoordinateString(coordinateString);
console.log(decimalCoordinate);