|
|
@@ -0,0 +1,31 @@
|
|
|
+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 }
|