无人机管理后台前端(已迁走)
张含笑
2025-10-29 39b3b3ba2cb55cd2ceb7ce426d11141ab2156426
feat:解析坐标
1 files modified
22 ■■■■ changed files
src/views/layerManagement/index.vue 22 ●●●● patch | view | raw | blame | history
src/views/layerManagement/index.vue
@@ -56,16 +56,30 @@
  activeType.value = clickedTab.type;
  activeName.value = clickedTab.name;
};
// 解析 geo_data 并转换为 DrawPolygon 所需的坐标格式
// 解析 geo_data 并转换为坐标格式(兼容 Polygon 和 LineString)
const parseGeoDataToPositions = (geoDataStr, altitude) => {
  try {
    const geoData = JSON.parse(geoDataStr);
    if (geoData.type !== 'Polygon') return [];
    const coordinates = geoData.coordinates[0];
    let coordinates = [];
    if (geoData.type === 'Polygon') {
      // Polygon 坐标格式:[[[lng, lat], ...]] → 取第一个多边形的顶点
      coordinates = geoData.coordinates[0] || [];
    } else if (geoData.type === 'LineString') {
      // LineString 坐标格式:[[lng, lat], ...] → 直接取顶点
      coordinates = geoData.coordinates || [];
    } else {
      console.warn(`不支持的地理数据类型:${geoData.type}`);
      return [];
    }
    // 转换为 {lng, lat, height} 格式
    return coordinates.map(([lng, lat]) => ({
      lng: Number(lng),
      lat: Number(lat),
      height: Number(altitude) || 0,
      height: Number(altitude) || 0,
    }));
  } catch (error) {
    console.error('解析 geo_data 失败:', error);