资源相关
This commit is contained in:
@ -2,19 +2,19 @@ package com.yj.earth.business.controller;
|
|||||||
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.yj.earth.business.domain.Source;
|
import com.yj.earth.business.domain.Source;
|
||||||
import com.yj.earth.business.service.RoleSourceService;
|
import com.yj.earth.business.service.RoleSourceService;
|
||||||
import com.yj.earth.business.service.SourceService;
|
import com.yj.earth.business.service.SourceService;
|
||||||
import com.yj.earth.business.service.UserService;
|
import com.yj.earth.business.service.UserService;
|
||||||
|
import com.yj.earth.common.service.SourceDataGenerator;
|
||||||
import com.yj.earth.common.service.SourceParamsValidator;
|
import com.yj.earth.common.service.SourceParamsValidator;
|
||||||
import com.yj.earth.common.util.ApiResponse;
|
import com.yj.earth.common.util.ApiResponse;
|
||||||
import com.yj.earth.common.util.MapUtil;
|
import com.yj.earth.common.util.MapUtil;
|
||||||
import com.yj.earth.dto.source.AddDirectoryDto;
|
import com.yj.earth.dto.source.*;
|
||||||
import com.yj.earth.dto.source.AddModelSourceDto;
|
|
||||||
import com.yj.earth.dto.source.AddOtherSourceDto;
|
|
||||||
import com.yj.earth.dto.source.UpdateSourceDto;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -22,8 +22,7 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Map;
|
import java.util.*;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import static com.yj.earth.common.constant.GlobalConstant.DIRECTORY;
|
import static com.yj.earth.common.constant.GlobalConstant.DIRECTORY;
|
||||||
import static com.yj.earth.common.constant.GlobalConstant.SHOW;
|
import static com.yj.earth.common.constant.GlobalConstant.SHOW;
|
||||||
@ -42,6 +41,9 @@ public class SourceController {
|
|||||||
@Resource
|
@Resource
|
||||||
private SourceParamsValidator sourceParamsValidator;
|
private SourceParamsValidator sourceParamsValidator;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SourceDataGenerator sourceDataGenerator;
|
||||||
|
|
||||||
@PostMapping("/addDirectory")
|
@PostMapping("/addDirectory")
|
||||||
@Operation(summary = "新增目录资源")
|
@Operation(summary = "新增目录资源")
|
||||||
public ApiResponse addDirectory(@RequestBody AddDirectoryDto addDirectoryDto) {
|
public ApiResponse addDirectory(@RequestBody AddDirectoryDto addDirectoryDto) {
|
||||||
@ -79,6 +81,7 @@ public class SourceController {
|
|||||||
String detail = sourceService.getDetail(sourcePath, sourceId);
|
String detail = sourceService.getDetail(sourcePath, sourceId);
|
||||||
// 构建并保存资源对象
|
// 构建并保存资源对象
|
||||||
Source source = new Source();
|
Source source = new Source();
|
||||||
|
source.setId(addModelSourceDto.getId());
|
||||||
source.setSourcePath(sourcePath);
|
source.setSourcePath(sourcePath);
|
||||||
source.setSourceName(sourceName);
|
source.setSourceName(sourceName);
|
||||||
source.setParentId(addModelSourceDto.getParentId());
|
source.setParentId(addModelSourceDto.getParentId());
|
||||||
@ -107,7 +110,6 @@ public class SourceController {
|
|||||||
addOtherSourceDto.getSourceType(),
|
addOtherSourceDto.getSourceType(),
|
||||||
addOtherSourceDto.getParams()
|
addOtherSourceDto.getParams()
|
||||||
);
|
);
|
||||||
System.out.println(validatedParams);
|
|
||||||
Source source = new Source();
|
Source source = new Source();
|
||||||
BeanUtils.copyProperties(addOtherSourceDto, source);
|
BeanUtils.copyProperties(addOtherSourceDto, source);
|
||||||
source.setIsShow(SHOW);
|
source.setIsShow(SHOW);
|
||||||
@ -119,7 +121,7 @@ public class SourceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "更新资源信息及参数")
|
@Operation(summary = "更新资源信息")
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public ApiResponse updateSource(@RequestBody UpdateSourceDto updateSourceDto) {
|
public ApiResponse updateSource(@RequestBody UpdateSourceDto updateSourceDto) {
|
||||||
// 查询资源
|
// 查询资源
|
||||||
@ -127,10 +129,8 @@ public class SourceController {
|
|||||||
if (source == null) {
|
if (source == null) {
|
||||||
return ApiResponse.failure("资源不存在");
|
return ApiResponse.failure("资源不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新基本信息
|
// 更新基本信息
|
||||||
BeanUtils.copyProperties(updateSourceDto, source);
|
BeanUtils.copyProperties(updateSourceDto, source);
|
||||||
|
|
||||||
// 处理参数更新
|
// 处理参数更新
|
||||||
if (updateSourceDto.getParams() != null && !updateSourceDto.getParams().isEmpty()) {
|
if (updateSourceDto.getParams() != null && !updateSourceDto.getParams().isEmpty()) {
|
||||||
// 获取类型
|
// 获取类型
|
||||||
@ -140,29 +140,72 @@ public class SourceController {
|
|||||||
sourceType,
|
sourceType,
|
||||||
updateSourceDto.getParams()
|
updateSourceDto.getParams()
|
||||||
);
|
);
|
||||||
|
|
||||||
// 获取原始数据的 Map 并合并新参数
|
// 获取原始数据的 Map 并合并新参数
|
||||||
Map<String, Object> dataMap = MapUtil.jsonToMap(source.getParams());
|
Map<String, Object> dataMap = MapUtil.jsonToMap(source.getParams());
|
||||||
MapUtil.mergeMaps(dataMap, updateSourceDto.getParams());
|
MapUtil.mergeMaps(dataMap, updateSourceDto.getParams());
|
||||||
source.setParams(MapUtil.mapToString(dataMap));
|
source.setParams(MapUtil.mapToString(dataMap));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存更新
|
// 保存更新
|
||||||
sourceService.updateById(source);
|
sourceService.updateById(source);
|
||||||
return ApiResponse.success(source);
|
return ApiResponse.success(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/type")
|
|
||||||
@Operation(summary = "获取支持的资源类型")
|
|
||||||
public ApiResponse getSupportedSourceTypes() {
|
|
||||||
Set<String> supportedTypes = sourceParamsValidator.getSupportedSourceTypes();
|
|
||||||
return ApiResponse.success(supportedTypes);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "获取资源列表")
|
@Operation(summary = "获取资源列表")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public ApiResponse list() {
|
public ApiResponse list() {
|
||||||
return ApiResponse.success(sourceService.getSourceListByUserId(StpUtil.getLoginIdAsString()));
|
return ApiResponse.success(sourceService.getSourceListByUserId(StpUtil.getLoginIdAsString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "删除资源数据")
|
||||||
|
@PostMapping("/delete")
|
||||||
|
public ApiResponse delete(@RequestBody DeleteSourceDto deleteSourceDto) {
|
||||||
|
if (deleteSourceDto.getIds() == null || deleteSourceDto.getIds().isEmpty()) {
|
||||||
|
return ApiResponse.failure("资源ID列表不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 收集所有需要删除的资源ID(包括子资源)
|
||||||
|
Set<String> allIds = new HashSet<>();
|
||||||
|
|
||||||
|
for (String id : deleteSourceDto.getIds()) {
|
||||||
|
// 获取资源
|
||||||
|
Source source = sourceService.getById(id);
|
||||||
|
if (source == null) {
|
||||||
|
return ApiResponse.failure("资源ID为" + id + "的资源不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询ID等于自身或者父级ID等于自身的资源
|
||||||
|
LambdaQueryWrapper<Source> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(Source::getId, source.getId())
|
||||||
|
.or()
|
||||||
|
.eq(Source::getParentId, source.getId());
|
||||||
|
List<Source> list = sourceService.list(queryWrapper);
|
||||||
|
|
||||||
|
// 筛选ID列表并添加到总集合中
|
||||||
|
list.stream().map(Source::getId).forEach(allIds::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除这些资源
|
||||||
|
sourceService.removeByIds(allIds);
|
||||||
|
|
||||||
|
// 删除这些资源下的所有角色资源关系
|
||||||
|
roleSourceService.deleteRoleSource(
|
||||||
|
userService.getById(StpUtil.getLoginIdAsString()).getRoleId(),
|
||||||
|
new ArrayList<>(allIds)
|
||||||
|
);
|
||||||
|
|
||||||
|
return ApiResponse.success(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/type")
|
||||||
|
@Operation(summary = "获取已有类型")
|
||||||
|
public ApiResponse getSupportedSourceTypes() {
|
||||||
|
Set<String> supportedTypes = sourceParamsValidator.getSupportedSourceTypes();
|
||||||
|
return ApiResponse.success(supportedTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "获取示例数据")
|
||||||
|
@GetMapping("/paramsExample")
|
||||||
|
public String getExampleData(String sourceType) throws JsonProcessingException {
|
||||||
|
return sourceDataGenerator.generateDefaultJson(sourceType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,11 @@ package com.yj.earth.business.service;
|
|||||||
import com.yj.earth.business.domain.RoleSource;
|
import com.yj.earth.business.domain.RoleSource;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public interface RoleSourceService extends IService<RoleSource> {
|
public interface RoleSourceService extends IService<RoleSource> {
|
||||||
void addRoleSource(String roleId, String sourceId);
|
void addRoleSource(String roleId, String sourceId);
|
||||||
|
|
||||||
|
void deleteRoleSource(String roleId, List<String> sourceIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
package com.yj.earth.business.service.impl;
|
package com.yj.earth.business.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yj.earth.business.domain.RoleSource;
|
import com.yj.earth.business.domain.RoleSource;
|
||||||
import com.yj.earth.business.mapper.RoleSourceMapper;
|
import com.yj.earth.business.mapper.RoleSourceMapper;
|
||||||
import com.yj.earth.business.service.RoleSourceService;
|
import com.yj.earth.business.service.RoleSourceService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RoleSourceServiceImpl extends ServiceImpl<RoleSourceMapper, RoleSource> implements RoleSourceService {
|
public class RoleSourceServiceImpl extends ServiceImpl<RoleSourceMapper, RoleSource> implements RoleSourceService {
|
||||||
@ -17,4 +20,12 @@ public class RoleSourceServiceImpl extends ServiceImpl<RoleSourceMapper, RoleSou
|
|||||||
roleSource.setSourceId(sourceId);
|
roleSource.setSourceId(sourceId);
|
||||||
save(roleSource);
|
save(roleSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteRoleSource(String roleId, List<String> sourceIds) {
|
||||||
|
LambdaQueryWrapper<RoleSource> roleSourceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
roleSourceLambdaQueryWrapper.eq(RoleSource::getRoleId, roleId);
|
||||||
|
roleSourceLambdaQueryWrapper.in(RoleSource::getSourceId, sourceIds);
|
||||||
|
remove(roleSourceLambdaQueryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,4 +54,11 @@ public class SourceParamsValidator {
|
|||||||
public Set<String> getSupportedSourceTypes() {
|
public Set<String> getSupportedSourceTypes() {
|
||||||
return sourceTypeMap.keySet();
|
return sourceTypeMap.keySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取sourceType与类的映射关系
|
||||||
|
*/
|
||||||
|
public Map<String, Class<?>> getSourceTypeMap() {
|
||||||
|
return sourceTypeMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,222 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "点标注对象")
|
|
||||||
@SourceType("point")
|
|
||||||
public class BillboardObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "标注整体的显隐", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "位置(必填)")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附地表; 3:依附模型)", defaultValue = "3")
|
|
||||||
private int heightMode = 3;
|
|
||||||
|
|
||||||
@Schema(description = "是否开启跟随视野缩放", defaultValue = "true")
|
|
||||||
private boolean scaleByDistance = true;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
|
|
||||||
@Schema(description = "图标参数")
|
|
||||||
private Billboard billboard = new Billboard();
|
|
||||||
|
|
||||||
@Schema(description = "文字参数")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "图标参数")
|
|
||||||
public static class Billboard {
|
|
||||||
@Schema(description = "图标显隐", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "图标路径")
|
|
||||||
private String image;
|
|
||||||
|
|
||||||
@Schema(description = "默认图标的唯一标识")
|
|
||||||
private String defaultImage;
|
|
||||||
|
|
||||||
@Schema(description = "图标放大倍数", defaultValue = "3")
|
|
||||||
private int scale = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "文字参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "文字内容")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "文字显隐", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "文字字体项(0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体)", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "文字大小、单位px", defaultValue = "39")
|
|
||||||
private int fontSize = 39;
|
|
||||||
|
|
||||||
@Schema(description = "文字颜色", defaultValue = "#00ffff")
|
|
||||||
private String color = "#00ffff";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Schema(description = "全景图")
|
|
||||||
private Vr vr = new Vr();
|
|
||||||
|
|
||||||
@Schema(description = "摄像头")
|
|
||||||
private Camera camera = new Camera();
|
|
||||||
|
|
||||||
@Schema(description = "ISC")
|
|
||||||
private Isc isc = new Isc();
|
|
||||||
|
|
||||||
@Schema(description = "物资")
|
|
||||||
private Goods goods = new Goods();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "全景图属性")
|
|
||||||
public static class Vr {
|
|
||||||
@Schema(description = "全景图内容列表")
|
|
||||||
private List<VrContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "全景图内容")
|
|
||||||
public static class VrContent {
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "摄像头属性")
|
|
||||||
public static class Camera {
|
|
||||||
@Schema(description = "摄像头内容列表")
|
|
||||||
private List<Object> content = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "ISC属性")
|
|
||||||
public static class Isc {
|
|
||||||
@Schema(description = "ISC内容列表")
|
|
||||||
private List<Object> content = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "物资属性")
|
|
||||||
public static class Goods {
|
|
||||||
@Schema(description = "物资内容列表")
|
|
||||||
private List<GoodsContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "物资内容")
|
|
||||||
public static class GoodsContent {
|
|
||||||
@Schema(description = "id")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "数量")
|
|
||||||
private String cnt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,192 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "曲线对象")
|
|
||||||
@SourceType("curve")
|
|
||||||
public class CurvelineObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "首尾相反", defaultValue = "false")
|
|
||||||
private boolean rotate = false;
|
|
||||||
|
|
||||||
@Schema(description = "间距", defaultValue = "1")
|
|
||||||
|
|
||||||
private int space = 1;
|
|
||||||
@Schema(description = "速度", defaultValue = "10")
|
|
||||||
|
|
||||||
private String speed = "10";
|
|
||||||
@Schema(description = "空间单位名称", defaultValue = "0")
|
|
||||||
private String wordsName;
|
|
||||||
|
|
||||||
@Schema(description = "长度单位", defaultValue = "0")
|
|
||||||
private String lengthUnit;
|
|
||||||
|
|
||||||
@Schema(description = "线宽", defaultValue = "3")
|
|
||||||
private double width = 3;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "#ff0000")
|
|
||||||
private String color = "#ff0000";
|
|
||||||
|
|
||||||
@Schema(description = "材质类型 0-实线 1-虚线 2-泛光...", defaultValue = "0")
|
|
||||||
private int type = 0;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对高度;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "首尾相连", defaultValue = "false")
|
|
||||||
private boolean noseToTail = false;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲", defaultValue = "false")
|
|
||||||
private boolean extend = false;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲宽度", defaultValue = "10")
|
|
||||||
private double extendWidth = 10;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲颜色", defaultValue = "rgba(255,255,80,0.3)")
|
|
||||||
private String extendColor = "rgba(255,255,80,0.3)";
|
|
||||||
|
|
||||||
@Schema(description = "显隐", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放")
|
|
||||||
private Boolean scaleByDistance;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,187 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "箭头对象")
|
|
||||||
@SourceType("attackArrow")
|
|
||||||
public class PolygonAttackArrowObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "显示/隐藏", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "rgba(255, 0, 0, 0.5)")
|
|
||||||
private String color = "rgba(255, 0, 0, 0.5)";
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double height;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "面积单位", defaultValue = "平方米")
|
|
||||||
private String areaUnit = "平方米";
|
|
||||||
|
|
||||||
@Schema(description = "边框")
|
|
||||||
private Line line = new Line();
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "动画", defaultValue = "false")
|
|
||||||
private boolean spreadState = false;
|
|
||||||
|
|
||||||
@Schema(description = "动画重复", defaultValue = "false")
|
|
||||||
private boolean loop = false;
|
|
||||||
|
|
||||||
@Schema(description = "动画持续时长(毫秒)", defaultValue = "3000")
|
|
||||||
private int spreadTime = 3000;
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "边框属性")
|
|
||||||
public static class Line {
|
|
||||||
@Schema(description = "边框宽", defaultValue = "2")
|
|
||||||
private double width = 2;
|
|
||||||
|
|
||||||
@Schema(description = "边框颜色", defaultValue = "rgba(155, 155, 124, 0.89)")
|
|
||||||
private String color = "rgba(155, 155, 124, 0.89)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放", defaultValue = "false")
|
|
||||||
private boolean scaleByDistance = false;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接", defaultValue = "{}")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,178 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "多边形对象")
|
|
||||||
@SourceType("panel")
|
|
||||||
public class PolygonPanelObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "显示/隐藏", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "rgba(255, 0, 0, 0.5)")
|
|
||||||
private String color = "rgba(255, 0, 0, 0.5)";
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double height;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "面积单位", defaultValue = "平方米")
|
|
||||||
private String areaUnit = "平方米";
|
|
||||||
|
|
||||||
@Schema(description = "边框")
|
|
||||||
private Line line = new Line();
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "边框属性")
|
|
||||||
public static class Line {
|
|
||||||
@Schema(description = "边框宽", defaultValue = "2")
|
|
||||||
private double width = 2;
|
|
||||||
|
|
||||||
@Schema(description = "边框颜色", defaultValue = "rgba(155, 155, 124, 0.89)")
|
|
||||||
private String color = "rgba(155, 155, 124, 0.89)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放", defaultValue = "false")
|
|
||||||
private boolean scaleByDistance = false;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接", defaultValue = "{}")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,187 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "钳形箭头对象")
|
|
||||||
@SourceType("pincerArrow")
|
|
||||||
public class PolygonPincerArrowObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "显示/隐藏", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "rgba(255, 0, 0, 0.5)")
|
|
||||||
private String color = "rgba(255, 0, 0, 0.5)";
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double height;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "面积单位", defaultValue = "平方米")
|
|
||||||
private String areaUnit = "平方米";
|
|
||||||
|
|
||||||
@Schema(description = "边框")
|
|
||||||
private Line line = new Line();
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "动画", defaultValue = "false")
|
|
||||||
private boolean spreadState = false;
|
|
||||||
|
|
||||||
@Schema(description = "动画重复", defaultValue = "false")
|
|
||||||
private boolean loop = false;
|
|
||||||
|
|
||||||
@Schema(description = "动画持续时长(毫秒)", defaultValue = "3000")
|
|
||||||
private int spreadTime = 3000;
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "边框属性")
|
|
||||||
public static class Line {
|
|
||||||
@Schema(description = "边框宽", defaultValue = "2")
|
|
||||||
private double width = 2;
|
|
||||||
|
|
||||||
@Schema(description = "边框颜色", defaultValue = "rgba(155, 155, 124, 0.89)")
|
|
||||||
private String color = "rgba(155, 155, 124, 0.89)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放", defaultValue = "false")
|
|
||||||
private boolean scaleByDistance = false;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接", defaultValue = "{}")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,178 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "矩形对象")
|
|
||||||
@SourceType("rectangle")
|
|
||||||
public class PolygonRectangleObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "显示/隐藏", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "rgba(255, 0, 0, 0.5)")
|
|
||||||
private String color = "rgba(255, 0, 0, 0.5)";
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double height;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "面积单位", defaultValue = "平方米")
|
|
||||||
private String areaUnit = "平方米";
|
|
||||||
|
|
||||||
@Schema(description = "边框")
|
|
||||||
private Line line = new Line();
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "边框属性")
|
|
||||||
public static class Line {
|
|
||||||
@Schema(description = "边框宽", defaultValue = "2")
|
|
||||||
private double width = 2;
|
|
||||||
|
|
||||||
@Schema(description = "边框颜色", defaultValue = "rgba(155, 155, 124, 0.89)")
|
|
||||||
private String color = "rgba(155, 155, 124, 0.89)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放", defaultValue = "false")
|
|
||||||
private boolean scaleByDistance = false;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接", defaultValue = "{}")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,178 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "集结地对象")
|
|
||||||
@SourceType("rendezvous")
|
|
||||||
public class PolygonRendezvousObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "显示/隐藏", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "rgba(255, 0, 0, 0.5)")
|
|
||||||
private String color = "rgba(255, 0, 0, 0.5)";
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double height;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对地表;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "面积单位", defaultValue = "平方米")
|
|
||||||
private String areaUnit = "平方米";
|
|
||||||
|
|
||||||
@Schema(description = "边框")
|
|
||||||
private Line line = new Line();
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "边框属性")
|
|
||||||
public static class Line {
|
|
||||||
@Schema(description = "边框宽", defaultValue = "2")
|
|
||||||
private double width = 2;
|
|
||||||
|
|
||||||
@Schema(description = "边框颜色", defaultValue = "rgba(155, 155, 124, 0.89)")
|
|
||||||
private String color = "rgba(155, 155, 124, 0.89)";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放", defaultValue = "false")
|
|
||||||
private boolean scaleByDistance = false;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接", defaultValue = "{}")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,194 +0,0 @@
|
|||||||
package com.yj.earth.params;
|
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "线对象")
|
|
||||||
@SourceType("line")
|
|
||||||
public class PolylineObject {
|
|
||||||
@Schema(description = "唯一标识")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Schema(description = "名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "首尾相反", defaultValue = "false")
|
|
||||||
private boolean rotate = false;
|
|
||||||
|
|
||||||
@Schema(description = "间距", defaultValue = "1")
|
|
||||||
private int space = 1;
|
|
||||||
@Schema(description = "速度", defaultValue = "10")
|
|
||||||
|
|
||||||
private String speed = "10";
|
|
||||||
@Schema(description = "空间单位名称", defaultValue = "0")
|
|
||||||
private String wordsName;
|
|
||||||
|
|
||||||
@Schema(description = "长度单位", defaultValue = "0")
|
|
||||||
private String lengthUnit;
|
|
||||||
|
|
||||||
@Schema(description = "线宽", defaultValue = "3")
|
|
||||||
private double width = 3;
|
|
||||||
|
|
||||||
@Schema(description = "颜色", defaultValue = "#ff0000")
|
|
||||||
private String color = "#ff0000";
|
|
||||||
|
|
||||||
@Schema(description = "材质类型 0-实线 1-虚线 2-泛光...", defaultValue = "0")
|
|
||||||
private int type = 0;
|
|
||||||
|
|
||||||
@Schema(description = "高度模式(0:海拔高度;1:相对高度;2:依附模式)", defaultValue = "2")
|
|
||||||
private int heightMode = 2;
|
|
||||||
|
|
||||||
@Schema(description = "首尾相连", defaultValue = "false")
|
|
||||||
private boolean noseToTail = false;
|
|
||||||
|
|
||||||
@Schema(description = "线段圆滑", defaultValue = "false")
|
|
||||||
private boolean smooth = false;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲", defaultValue = "false")
|
|
||||||
private boolean extend = false;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲宽度", defaultValue = "10")
|
|
||||||
private double extendWidth = 10;
|
|
||||||
|
|
||||||
@Schema(description = "线缓冲颜色", defaultValue = "rgba(255,255,80,0.3)")
|
|
||||||
private String extendColor = "rgba(255,255,80,0.3)";
|
|
||||||
|
|
||||||
@Schema(description = "显隐", defaultValue = "true")
|
|
||||||
private boolean show = true;
|
|
||||||
|
|
||||||
@Schema(description = "经纬度和高度的列表(必填)")
|
|
||||||
private List<Position> positions = new ArrayList<>();
|
|
||||||
|
|
||||||
@Schema(description = "标签对象")
|
|
||||||
private Label label = new Label();
|
|
||||||
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
private Attribute attribute = new Attribute();
|
|
||||||
|
|
||||||
@Schema(description = "富文本内容")
|
|
||||||
private String richTextContent;
|
|
||||||
|
|
||||||
@Schema(description = "默认视角")
|
|
||||||
private CustomView customView = new CustomView();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "位置属性")
|
|
||||||
public static class Position {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "标签参数")
|
|
||||||
public static class Label {
|
|
||||||
@Schema(description = "标签文本")
|
|
||||||
private String text;
|
|
||||||
|
|
||||||
@Schema(description = "标签显隐")
|
|
||||||
private Boolean show;
|
|
||||||
|
|
||||||
@Schema(description = "标签位置")
|
|
||||||
private Position position = new Position();
|
|
||||||
|
|
||||||
@Schema(description = "字体大小", defaultValue = "20")
|
|
||||||
private int fontSize = 20;
|
|
||||||
|
|
||||||
@Schema(description = "字体项 0:黑体;1:思源黑体;2:庞门正道标题体;3:数黑体", defaultValue = "0")
|
|
||||||
private int fontFamily = 0;
|
|
||||||
|
|
||||||
@Schema(description = "字体颜色", defaultValue = "#ffffff")
|
|
||||||
private String color = "#ffffff";
|
|
||||||
|
|
||||||
@Schema(description = "引线宽", defaultValue = "4")
|
|
||||||
private double lineWidth = 4;
|
|
||||||
|
|
||||||
@Schema(description = "引线颜色", defaultValue = "#00ffff80")
|
|
||||||
private String lineColor = "#00ffff80";
|
|
||||||
|
|
||||||
@Schema(description = "字体偏移(引线长度)", defaultValue = "20")
|
|
||||||
private double pixelOffset = 20;
|
|
||||||
|
|
||||||
@Schema(description = "背景颜色", defaultValue = "['#00ffff80', '#00ffff80']")
|
|
||||||
private String[] backgroundColor = {"#00ffff80", "#00ffff80"};
|
|
||||||
|
|
||||||
@Schema(description = "距离缩放")
|
|
||||||
private Boolean scaleByDistance;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最近距离", defaultValue = "2000")
|
|
||||||
private int near = 2000;
|
|
||||||
|
|
||||||
@Schema(description = "视野缩放最远距离", defaultValue = "100000")
|
|
||||||
private int far = 100000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "属性内容")
|
|
||||||
public static class Attribute {
|
|
||||||
@Schema(description = "链接")
|
|
||||||
private Link link = new Link();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接属性")
|
|
||||||
public static class Link {
|
|
||||||
@Schema(description = "链接内容列表", defaultValue = "[]")
|
|
||||||
private List<LinkContent> content = new ArrayList<>();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "链接内容")
|
|
||||||
public static class LinkContent {
|
|
||||||
@Schema(description = "链接名称")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@Schema(description = "链接地址")
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "默认视角属性")
|
|
||||||
public static class CustomView {
|
|
||||||
@Schema(description = "默认视角方位")
|
|
||||||
private Orientation orientation = new Orientation();
|
|
||||||
|
|
||||||
@Schema(description = "视角相对位置")
|
|
||||||
private RelativePosition relativePosition = new RelativePosition();
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角方位属性")
|
|
||||||
public static class Orientation {
|
|
||||||
@Schema(description = "航向角")
|
|
||||||
private double heading;
|
|
||||||
|
|
||||||
@Schema(description = "俯仰角")
|
|
||||||
private double pitch;
|
|
||||||
|
|
||||||
@Schema(description = "翻滚角")
|
|
||||||
private double roll;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@Schema(description = "视角相对位置属性")
|
|
||||||
public static class RelativePosition {
|
|
||||||
@Schema(description = "经度")
|
|
||||||
private double lng;
|
|
||||||
|
|
||||||
@Schema(description = "纬度")
|
|
||||||
private double lat;
|
|
||||||
|
|
||||||
@Schema(description = "高度")
|
|
||||||
private double alt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,7 +1,57 @@
|
|||||||
package com.yj.earth.params;
|
package com.yj.earth.params;
|
||||||
|
|
||||||
import com.yj.earth.annotation.SourceType;
|
import com.yj.earth.annotation.SourceType;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SourceType("wallStereoscopic")
|
@SourceType("wallStereoscopic")
|
||||||
|
@Data
|
||||||
public class WallStereoscopic {
|
public class WallStereoscopic {
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
private List<Position> positions;
|
||||||
|
private boolean show;
|
||||||
|
private String color;
|
||||||
|
private double extrudedHeight;
|
||||||
|
private int material;
|
||||||
|
private int duration;
|
||||||
|
private boolean noseToTail;
|
||||||
|
private Label label;
|
||||||
|
private String instruct;
|
||||||
|
private String operatingPoint;
|
||||||
|
private Attribute attribute;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Position {
|
||||||
|
private double lng;
|
||||||
|
private double lat;
|
||||||
|
private double alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Label {
|
||||||
|
private boolean show;
|
||||||
|
private int fontSize;
|
||||||
|
private int fontFamily;
|
||||||
|
private String color;
|
||||||
|
private int lineWidth;
|
||||||
|
private int pixelOffset;
|
||||||
|
private List<String> backgroundColor;
|
||||||
|
private String lineColor;
|
||||||
|
private boolean scaleByDistance;
|
||||||
|
private int near;
|
||||||
|
private int far;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Attribute {
|
||||||
|
private Link link;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class Link {
|
||||||
|
private List<Object> content;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
33
src/main/java/com/yj/earth/sdk/CltController.java
Normal file
33
src/main/java/com/yj/earth/sdk/CltController.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.yj.earth.sdk;
|
||||||
|
|
||||||
|
import com.yj.earth.common.config.ServerConfig;
|
||||||
|
import com.yj.earth.common.util.HttpUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Tag(name = "模型数据相关")
|
||||||
|
@RequestMapping("/data/clt")
|
||||||
|
public class CltController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DirectService directService;
|
||||||
|
|
||||||
|
@Operation(summary = "获取倾斜模型数据")
|
||||||
|
@GetMapping("/{sourceId}/**")
|
||||||
|
public Object getData(HttpServletRequest request) {
|
||||||
|
return HttpUtil.doGetForByteArrayResponse(directService.getDirectUrl(request));
|
||||||
|
}
|
||||||
|
}
|
||||||
32
src/main/java/com/yj/earth/sdk/DirectService.java
Normal file
32
src/main/java/com/yj/earth/sdk/DirectService.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.yj.earth.sdk;
|
||||||
|
|
||||||
|
import com.yj.earth.common.config.ServerConfig;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class DirectService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ServerConfig serverConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取转发的SDK地址
|
||||||
|
*/
|
||||||
|
public String getDirectUrl(HttpServletRequest request) {
|
||||||
|
try {
|
||||||
|
// 获取原始请求的完整URL
|
||||||
|
String originalUrl = request.getRequestURL().toString();
|
||||||
|
// 解析原始URL
|
||||||
|
URL url = new URL(originalUrl);
|
||||||
|
// 构建新URL、保持协议、主机、路径不变、只替换端口
|
||||||
|
return new URL(url.getProtocol(), serverConfig.getHost(), serverConfig.getSdkPort(), url.getPath()).toString();
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new RuntimeException("转发到SDK错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/main/java/com/yj/earth/sdk/MbtilesController.java
Normal file
29
src/main/java/com/yj/earth/sdk/MbtilesController.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.yj.earth.sdk;
|
||||||
|
|
||||||
|
import com.yj.earth.common.util.HttpUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Tag(name = "模型数据相关")
|
||||||
|
@RequestMapping("/data/mbtiles")
|
||||||
|
public class MbtilesController {
|
||||||
|
@Resource
|
||||||
|
private DirectService directService;
|
||||||
|
|
||||||
|
@Operation(summary = "获取二维影像数据")
|
||||||
|
@GetMapping("{sourceId}/{z}/{x}/{y}.{format}")
|
||||||
|
public Object getData(HttpServletRequest request) {
|
||||||
|
return HttpUtil.doGetForByteArrayResponse(directService.getDirectUrl(request));
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/main/java/com/yj/earth/sdk/PakController.java
Normal file
35
src/main/java/com/yj/earth/sdk/PakController.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package com.yj.earth.sdk;
|
||||||
|
|
||||||
|
import com.yj.earth.common.util.HttpUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@Tag(name = "模型数据相关")
|
||||||
|
@RequestMapping("/data/pak")
|
||||||
|
public class PakController {
|
||||||
|
@Resource
|
||||||
|
private DirectService directService;
|
||||||
|
@Operation(summary = "获取地形描述文件")
|
||||||
|
@GetMapping("/{mark}/layer.json")
|
||||||
|
public Object jsonBySourceIdAndParam(HttpServletRequest request) {
|
||||||
|
return HttpUtil.doGetForByteArrayResponse(directService.getDirectUrl(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "获取地形相关的数据")
|
||||||
|
@GetMapping("/{mark}/{z}/{x}/{y}.{suffix}")
|
||||||
|
public Object data(HttpServletRequest request){
|
||||||
|
return HttpUtil.doGetForByteArrayResponse(directService.getDirectUrl(request));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user