|
|
@@ -5,7 +5,7 @@
|
|
|
<div class="">
|
|
|
场景名称:
|
|
|
<el-cascader
|
|
|
- :disabled="$route.query.sceneId"
|
|
|
+ :disabled="$route.query.sceneId || SceneValue"
|
|
|
v-model="SceneValue"
|
|
|
placeholder="试试搜索:距离"
|
|
|
:options="SceneList"
|
|
|
@@ -34,19 +34,10 @@
|
|
|
</div>
|
|
|
<el-divider></el-divider>
|
|
|
<div>
|
|
|
- 元素个数:{{
|
|
|
- SceneValue && SceneRule[SceneValue] ? SceneRule[SceneValue].numberOf : "0"
|
|
|
- }}
|
|
|
+ 元素个数:{{ SceneValue && dmsServerItem ? dmsServerItem.numberOf : "0" }}
|
|
|
</div>
|
|
|
<div>
|
|
|
- 参数类型:{{
|
|
|
- SceneValue && SceneRule[SceneValue] ? SceneRule[SceneValue].elementTypes : "[]"
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- 接口地址:{{
|
|
|
- SceneValue && SceneRule[SceneValue] ? SceneRule[SceneValue].apiUrl : "/"
|
|
|
- }}
|
|
|
+ 参数类型:{{ SceneValue && dmsServerItem ? dmsServerItem.elementTypes : "[]" }}
|
|
|
</div>
|
|
|
<div>接口地址:{{ SceneValue && dmsServerItem ? dmsServerItem.apiUrl : "/" }}</div>
|
|
|
</div>
|
|
|
@@ -69,15 +60,15 @@
|
|
|
<el-button type="primary">上传文件</el-button>
|
|
|
</el-upload>
|
|
|
</div>
|
|
|
- <div v-if="SceneValue && SceneRule[SceneValue]">
|
|
|
- <div v-for="item in SceneRule[SceneValue].elementTypes" :key="item">
|
|
|
+ <div v-if="SceneValue && dmsServerItem">
|
|
|
+ <div v-for="item in dmsServerItem.elementTypes" :key="item">
|
|
|
<div
|
|
|
- v-if="SceneValue && SceneRule[SceneValue] && SceneRule[SceneValue][item]"
|
|
|
+ v-if="SceneValue && dmsServerItem && selectOptions[item]"
|
|
|
style="margin: 0.5rem 0"
|
|
|
>
|
|
|
{{ item }}:<el-select
|
|
|
@change="handleSelectChange(item, $event)"
|
|
|
- v-if="SceneRule[SceneValue][item]"
|
|
|
+ v-if="selectOptions[item]"
|
|
|
v-model="params[item]"
|
|
|
:placeholder="'请选择' + item"
|
|
|
style="width: 240px"
|
|
|
@@ -139,10 +130,8 @@
|
|
|
class="vueJsonEditor_box"
|
|
|
v-show="
|
|
|
SceneValue &&
|
|
|
- SceneRule[SceneValue] &&
|
|
|
- (SceneRule[SceneValue].elementTypes.includes('point') ||
|
|
|
- SceneRule[SceneValue].elementTypes.includes('polyline') ||
|
|
|
- SceneRule[SceneValue].elementTypes.includes('polygon'))
|
|
|
+ dmsServerItem &&
|
|
|
+ (ifHasType('point') || ifHasType('polyline') || ifHasType('polygon'))
|
|
|
"
|
|
|
>
|
|
|
<div class="vueJsonEditor_tools">
|
|
|
@@ -422,527 +411,73 @@ export default {
|
|
|
],
|
|
|
},
|
|
|
],
|
|
|
- // 场景规则
|
|
|
- SceneRule: {
|
|
|
- "1.5.1.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "拓扑计算功能聚焦于深度解析大批量数据的点、线、面之间的拓扑关系,能够精准判断点与线、面的位置关系,以及线、面之间的相交、平行、邻接、包含等复杂状态。借助四叉树、R 树等精心设计的数据结构,结合 Douglas - Peucker 等高效算法,确保在处理海量空间数据时,也能快速且准确地输出分析结果。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/topology/geoJsonToGeoJson",
|
|
|
- },
|
|
|
- "1.5.2.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "计算两个点要素之间的最短空间距离,单位支持米、千米。操作逻辑为:用户通过接口输入两点经纬度坐标,或在系统内部地图上点击选择两点,系统基于坐标系参数计算欧氏距离。例如:计算青浦区某学校与社区卫生服务中心的直线距离,用于公共服务覆盖半径评估;计算两个监测点位的直线距离,用于监测设备信号覆盖范围判断。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "point", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/pointToPoint",
|
|
|
- },
|
|
|
- "1.5.2.2": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition: "计算点和线要素之间的最短空间距离,单位支持米、千米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/pointToLine",
|
|
|
- },
|
|
|
- "1.5.2.3": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition: "计算点和面要素之间的最短空间距离,单位支持米、千米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polygon", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/pointToPolygon",
|
|
|
- },
|
|
|
- "1.5.2.4": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition: "计算两个面要素之间的最短空间距离,单位支持米、千米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon", "polygon", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/PolygonToPolygon",
|
|
|
- },
|
|
|
- "1.5.2.5": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition: "计算多条线段组成的折线总长度,单位支持米、千米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polyline", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/calculatePolylineDistance",
|
|
|
- },
|
|
|
- "1.5.2.6": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "计算面要素在二维平面上的投影面积,单位支持平方米、公顷、平方千米切换",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "SQUARE_METER",
|
|
|
- label: "平方米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "HECTARE",
|
|
|
- label: "公顷",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SQUARE_KILOMETER",
|
|
|
- label: "平方千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/calculatePlaneAreaInGeometry",
|
|
|
- },
|
|
|
- "1.5.2.7": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "结合 DEM 高程数据,计算面要素在三维地形上的实际曲面面积(考虑地形起伏),精度依赖 DEM 数据分辨率。,单位支持平方米、公顷、平方千米切换",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon", "unit"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "SQUARE_METER",
|
|
|
- label: "平方米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "HECTARE",
|
|
|
- label: "公顷",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SQUARE_KILOMETER",
|
|
|
- label: "平方千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/calculateSurfaceAreaInGeometry",
|
|
|
- },
|
|
|
- "1.5.2.8": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "查询单个点要素的海拔高度(基于 CGCS2000 大地高程基准),单位为米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/getPointElevationInGeometry",
|
|
|
- },
|
|
|
- "1.5.2.9": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "计算两个点要素之间的高程差值,支持正负值显示(正值表示前者高于后者,负值相反)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "point"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/calculateElevationDiffInGeometry",
|
|
|
- },
|
|
|
- "1.5.2.10": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "查询单个面要素的海拔高度(基于 CGCS2000 大地高程基准),单位为米",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatialMeasure/calculateAreaElevationStatsInGeometry",
|
|
|
- },
|
|
|
- "1.5.3.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "将两个或多个不重叠 / 部分重叠的面要素,合并为一个连续的新面要素(消除重叠部分,保留所有要素的覆盖范围)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/geometry/union",
|
|
|
- },
|
|
|
- "1.5.3.2": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "提取两个或多个面要素之间的重叠区域,生成新的面要素(仅保留所有要素共同覆盖的范围)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/geometry/intersection",
|
|
|
- },
|
|
|
- "1.5.3.3": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "以一个面要素(称为 “源面”)为基础,减去与另一个面要素(称为 “裁剪面”)的重叠区域,生成新的面要素(保留源面中未被裁剪面覆盖的部分)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/geometry/difference",
|
|
|
- },
|
|
|
- "1.5.3.4": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "计算面要素的参数(面积、周长、中心坐标、最小外接矩形等)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/geometry/parameters",
|
|
|
- },
|
|
|
- "1.5.4.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "判断两个面要素是否 “边界接触但不重叠”,且距离小于等于自定义阈值(默认 1 米,可通过接口参数调整),核心用于 “相邻区域联动” 场景",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polygon", "polygon", "EPSILON"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/relationAnalys/adjacent",
|
|
|
- },
|
|
|
- "1.5.4.2": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "判断一个要素(含点、线、面)是否完全位于另一个面要素内部,且无任何部分超出,核心用于 “归属界定” 场景",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon", "EPSILON"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/relationAnalys/include",
|
|
|
- },
|
|
|
- "1.5.4.3": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "判断两个要素(点与线、点与面、线与线、线与面、面与面)是否存在空间重叠(含部分重叠),核心用于 “交叉影响” 场景",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon", "EPSILON"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/relationAnalys/intersect",
|
|
|
- },
|
|
|
- "1.5.4.4": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "判断两个要素(点、线、面)之间无任何空间接触(含边界接触),且最小距离大于自定义阈值(默认 10 米,可通过接口参数调整),核心用于 “无关联排除” 场景",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon", "EPSILON"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/relationAnalys/parting",
|
|
|
- },
|
|
|
- "1.5.5.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "非空间数据转空间数据功能支持常见格式的非空间数据转换,如 CSV、Excel 表格数据等。通过与地理编码服务紧密结合,关联空间参考信息(如地址、行政区域、关联 ID),转换为带坐标的空间要素(点、线、面),将表格中的地址、坐标等信息转换为具有空间位置的矢量数据的功能,并依据用户设定规则赋予属性信息。核心解决 “业务数据与地图引擎关联” 的问题,实现 “数据可视化” 与 “空间分析” 的联动。在智慧城市建设中,整合人口、环境、交通等多源非空间数据,实现数据融合分析,为城市精细化管理提供数据支持;在地理大数据分析中,拓展非空间数据的应用维度,挖掘数据潜在价值。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["file"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 0,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/nonStandardToStandard/importFile",
|
|
|
- },
|
|
|
- "1.5.6.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "坐标转换是基于青浦区三维数字底板的坐标系统(SH2000投影坐标系),将空间要素的坐标在不同坐标系之间进行转换的功能,包括地理坐标系(如 WGS84、上海 2000 等)和投影坐标系(如高斯 - 克吕格投影、UTM 投影等)",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["lon", "lat", "inPrj", "outPrj"],
|
|
|
- inPrj: [
|
|
|
- {
|
|
|
- value: "WGS84",
|
|
|
- label: "WGS84",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SH2000",
|
|
|
- label: "SH2000",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "UTM",
|
|
|
- label: "UTM",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "WEB_Mercator",
|
|
|
- label: "WEB_Mercator",
|
|
|
- },
|
|
|
- ],
|
|
|
- outPrj: [
|
|
|
- {
|
|
|
- value: "WGS84",
|
|
|
- label: "WGS84",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SH2000",
|
|
|
- label: "SH2000",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "UTM",
|
|
|
- label: "UTM",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "WEB_Mercator",
|
|
|
- label: "WEB_Mercator",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 0,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/coordinateSystemTransformation/pointTransformation",
|
|
|
- },
|
|
|
- "1.5.6.2": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "传入geoJsonPolygons(geojson)并解析成JSONArray,然后转坐标并返回geojson",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon", "inPrj", "outPrj"],
|
|
|
- inPrj: [
|
|
|
- {
|
|
|
- value: "WGS84",
|
|
|
- label: "WGS84",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SH2000",
|
|
|
- label: "SH2000",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "UTM",
|
|
|
- label: "UTM",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "WEB_Mercator",
|
|
|
- label: "WEB_Mercator",
|
|
|
- },
|
|
|
- ],
|
|
|
- outPrj: [
|
|
|
- {
|
|
|
- value: "WGS84",
|
|
|
- label: "WGS84",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SH2000",
|
|
|
- label: "SH2000",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "UTM",
|
|
|
- label: "UTM",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "WEB_Mercator",
|
|
|
- label: "WEB_Mercator",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/coordinateSystemTransformation/transformation",
|
|
|
- },
|
|
|
- "1.5.7.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "时空数据格式转换是将青浦区三维数字底板中的时空数据(含空间坐标与时间属性的数据,如轨迹数据、时序监测数据),在不同标准数据格式之间进行转换的功能,如 Shapefile、GeoJSON、KML、NetCDF 等。核心支持 “矢量数据格式转换”“栅格数据格式转换”“时空轨迹数据格式转换” 三类转换,确保数据能在不同 GIS 软件、不同应用系统之间兼容流转,不同部门、不同系统之间顺利读取和处理时空数据;在大数据存储和管理时,根据不同应用场景和存储需求,选择合适的数据格式。提高数据存储和访问效率,满足数据共享、分析、展示的多场景需求。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["file", "outFileType", "lonKey", "latKey"],
|
|
|
- outFileType: [
|
|
|
- {
|
|
|
- value: "geoJson",
|
|
|
- label: "geoJson",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "shp",
|
|
|
- label: "shp",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "csv",
|
|
|
- label: "csv",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "xlsx",
|
|
|
- label: "xlsx",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 0,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatiotemporal_data_format_conversion/fileFormatConversion",
|
|
|
- },
|
|
|
- "1.5.7.2": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition: "转换文件下载",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["filePath"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 0,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spatiotemporal_data_format_conversion/downloadFile",
|
|
|
- },
|
|
|
- // 这就都是时空算子库了
|
|
|
- "1.2.5.1": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "墨卡托投影是一种等角正圆柱投影,经纬线相互垂直,纬线间隔随纬度升高而增大 。计算距离时,利用投影后的坐标,根据勾股定理计算两点间的直线距离,再通过特定的比例尺换算公式,将投影距离转换为实际地面距离。计算面积时,先将多边形分割成多个三角形,利用三角形面积公式计算各三角形面积,再求和得到多边形面积,过程中同样要考虑投影带来的变形和比例尺差异。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["polyline", "polygon", "unit", "inPrj"],
|
|
|
- // 单位
|
|
|
- unit: [
|
|
|
- {
|
|
|
- value: "METER",
|
|
|
- label: "米",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "KILOMETER",
|
|
|
- label: "千米",
|
|
|
- },
|
|
|
- ],
|
|
|
- inPrj: [
|
|
|
- {
|
|
|
- value: "WGS84",
|
|
|
- label: "WGS84",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "SH2000",
|
|
|
- label: "SH2000",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "UTM",
|
|
|
- label: "UTM",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "WEB_Mercator",
|
|
|
- label: "WEB_Mercator",
|
|
|
- },
|
|
|
- ],
|
|
|
- // 元素个数
|
|
|
- numberOf: 1,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spaceTimeOperatorLibrary/adjacent",
|
|
|
- },
|
|
|
-
|
|
|
- "1.2.5.2": {
|
|
|
- // 功能描述:(必须要有两个点和一个障碍面?)
|
|
|
- functionalDefinition:
|
|
|
- "基于图论的思想,将地图抽象为一个图,其中节点表示位置,边表示可通行路径,设置障碍的区域则视为不可通行的边或节点。通过搜索算法,如 Dijkstra 算法、A * 算法等,在考虑障碍的情况下,寻找从起点到终点的最优路径。这些算法会根据节点间的距离、代价等因素,不断探索和评估路径,直到找到满足条件的最佳路径。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "point", "polygon"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 3,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spaceTimeOperatorLibrary/pathCalculation",
|
|
|
- },
|
|
|
- "1.2.5.3": {
|
|
|
- // 功能描述:(由于使用了jts的工具,这个工具类必须要有高程数据,暂时测试不了)
|
|
|
- functionalDefinition:
|
|
|
- "对于点与线的关系,通过计算点到线的垂直距离,若距离为 0,则点在线上;对于点与面的关系,可通过射线法,从点出发作一条射线,统计射线与多边形边界的交点个数,若为奇数则点在面内,偶数则在面外。线与线的关系可通过判断两条线段是否相交来确定;线与面的关系则是判断线与面的边界是否相交以及交点个数等。对于体与点、线、面的关系,类似地通过计算几何的方法,判断点是否在体内,线是否贯穿体,面是否与体相交等。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["pointZ", "polylineZ", "polygonZ"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/spaceTimeOperatorLibrary/topologyPlus",
|
|
|
- },
|
|
|
- "1.2.5.4": {
|
|
|
- // 功能描述
|
|
|
- functionalDefinition:
|
|
|
- "以点、线、面等几何对象为基础,按照给定的距离生成围绕这些对象的缓冲区。对于点,缓冲区是一个以点为圆心,给定距离为半径的圆;对于线,缓冲区是沿着线的两侧扩展一定距离形成的带状区域;对于面,缓冲区是在面的边界向外或向内扩展一定距离得到的新面。计算过程中需要考虑几何对象的形状、方向以及缓冲区的平滑度等因素。",
|
|
|
- // 元素类型
|
|
|
- elementTypes: ["point", "polyline", "polygon", "EPSILON"],
|
|
|
- // 元素个数
|
|
|
- numberOf: 2,
|
|
|
- // 后台接口路径
|
|
|
- apiUrl: "/relationAnalys/neighbor",
|
|
|
- },
|
|
|
- // children: [
|
|
|
- // {
|
|
|
- // value: "1.2.5.5",
|
|
|
- // label: "线面体分割",
|
|
|
- // },
|
|
|
- // {
|
|
|
- // value: "1.2.5.6",
|
|
|
- // label: "时空差异分析(两个面计算不相交的面)",
|
|
|
- // },
|
|
|
- // ],
|
|
|
+ dmsServerItem: {},
|
|
|
+ selectOptions: {
|
|
|
+ // 单位
|
|
|
+ unit: [
|
|
|
+ {
|
|
|
+ value: "METER",
|
|
|
+ label: "米",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "KILOMETER",
|
|
|
+ label: "千米",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ inPrj: [
|
|
|
+ {
|
|
|
+ value: "WGS84",
|
|
|
+ label: "WGS84",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "SH2000",
|
|
|
+ label: "SH2000",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "UTM",
|
|
|
+ label: "UTM",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "WEB_Mercator",
|
|
|
+ label: "WEB_Mercator",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ outPrj: [
|
|
|
+ {
|
|
|
+ value: "WGS84",
|
|
|
+ label: "WGS84",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "SH2000",
|
|
|
+ label: "SH2000",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "UTM",
|
|
|
+ label: "UTM",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "WEB_Mercator",
|
|
|
+ label: "WEB_Mercator",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ outFileType: [
|
|
|
+ {
|
|
|
+ value: "geoJson",
|
|
|
+ label: "geoJson",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "shp",
|
|
|
+ label: "shp",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "csv",
|
|
|
+ label: "csv",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "xlsx",
|
|
|
+ label: "xlsx",
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
currentTool: null,
|
|
|
drawingMode: null,
|
|
|
@@ -978,6 +513,60 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ ifHasType(type) {
|
|
|
+ if (this.dmsServerItem.elementTypes && this.dmsServerItem.elementTypes.length > 0) {
|
|
|
+ return this.dmsServerItem.elementTypes.includes(type);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 搜索微功能服务
|
|
|
+ searchServerList() {
|
|
|
+ let requestParams = {
|
|
|
+ columnId: 1651,
|
|
|
+ states: 0,
|
|
|
+ pageSize: 999,
|
|
|
+ page: 0,
|
|
|
+ };
|
|
|
+ if (this.SceneValue) {
|
|
|
+ requestParams.search = JSON.stringify([
|
|
|
+ {
|
|
|
+ field: "c_scene_name",
|
|
|
+ searchType: 1,
|
|
|
+ content: { value: this.SceneValue },
|
|
|
+ },
|
|
|
+ ]);
|
|
|
+ // 获取微功能服务列表
|
|
|
+ wgn
|
|
|
+ .getDmsData(requestParams)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200 && res.content.data[0]) {
|
|
|
+ let dmsServiceData = res.content.data[0];
|
|
|
+ this.dmsServerItem = {
|
|
|
+ // 功能描述
|
|
|
+ functionalDefinition: dmsServiceData.content,
|
|
|
+ // 元素类型
|
|
|
+ elementTypes: JSON.parse(dmsServiceData.c_input_parameter_rules),
|
|
|
+ // 元素个数
|
|
|
+ numberOf: JSON.parse(dmsServiceData.c_number_of_elements),
|
|
|
+ // 后台接口路径
|
|
|
+ apiUrl: dmsServiceData.c_url,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: "搜索微功能服务失败,请检查场景名称是否正确",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.$message({
|
|
|
+ message: "搜索微功能服务失败" + e,
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
// 将用户输入或后台返回的geojson渲染到地图中
|
|
|
showToMap(geojson) {
|
|
|
// 1. 清除所有地图中的元素
|
|
|
@@ -1740,18 +1329,18 @@ export default {
|
|
|
}
|
|
|
if (
|
|
|
this.SceneValue &&
|
|
|
- this.SceneRule[this.SceneValue] &&
|
|
|
- this.SceneRule[this.SceneValue].elementTypes &&
|
|
|
- this.SceneRule[this.SceneValue].elementTypes.includes("inPrj") &&
|
|
|
+ this.dmsServerItem &&
|
|
|
+ this.dmsServerItem.elementTypes &&
|
|
|
+ this.ifHasType("inPrj") &&
|
|
|
this.params.inPrj
|
|
|
) {
|
|
|
requestData.inPrj = this.params.inPrj;
|
|
|
}
|
|
|
if (
|
|
|
this.SceneValue &&
|
|
|
- this.SceneRule[this.SceneValue] &&
|
|
|
- this.SceneRule[this.SceneValue].elementTypes &&
|
|
|
- this.SceneRule[this.SceneValue].elementTypes.includes("outPrj") &&
|
|
|
+ this.dmsServerItem &&
|
|
|
+ this.dmsServerItem.elementTypes &&
|
|
|
+ this.ifHasType("outPrj") &&
|
|
|
this.params.outPrj
|
|
|
) {
|
|
|
requestData.outPrj = this.params.outPrj;
|