function parseMaybeJson(value) { if (value == null) return null if (Array.isArray(value)) return value if (typeof value === 'string') { try { return JSON.parse(value) } catch { return null } } return null } /** * 将 path_data.data 或 lepao_record.point_data 转为前端使用的 [经度, 纬度] 数组 */ function toCoordinatePairs(pathData, pointData) { const path = parseMaybeJson(pathData) if (Array.isArray(path) && path.length > 0 && path[0]?.o != null) { return path.map(point => [point.o, point.a]) } const points = parseMaybeJson(pointData) if (Array.isArray(points) && points.length > 0) { return points.map(p => [p.longitude ?? p.longtitude, p.latitude]) } return [] } module.exports = { toCoordinatePairs, parseMaybeJson }