编辑代码

//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
// 将度分秒转换为度的小数
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); // 输出 { latitude: 37.1889, longitude: 118.2219 }