cd-mapgis 1.0.23 → 1.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cd-mapgis",
3
- "version": "1.0.23",
3
+ "version": "1.0.25",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "type": "module",
@@ -0,0 +1,13 @@
1
+ export default class InnerUtil {
2
+ /**
3
+ * 替换geoServer地址的前缀
4
+ * @param {*} url
5
+ * @param {*} host
6
+ * @returns
7
+ */
8
+ static getGeoServerUrl(url, host) {
9
+ if (!host) return url;
10
+ let index = url.indexOf('/geoserver');
11
+ return host + url.substr(index);
12
+ }
13
+ }
package/src/OM.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import HttpUtil from './HttpUtil.js';
2
2
  import LayerUtil from './LayerUtil.js';
3
3
  import MapView from './MapView.js';
4
+ import InnerUtil from './InnerUtil.js';
4
5
 
5
6
  /**
6
7
  * 服务器交互,地图一张图
@@ -88,17 +89,24 @@ export default class OM {
88
89
  static getBound(p) {
89
90
  return OM.post("/map/getBound", p);
90
91
  }
92
+ /**
93
+ * 检查是否已发布图层,传入图层列表,返回已经发布的图层列表
94
+ * @param {*} p {layers:[]}
95
+ */
96
+ static checkPushLayers(p) {
97
+ return OM.post("/map/checkPushLayers", p);
98
+ }
91
99
  /**
92
100
  * 向地图视图添加图层
93
- * @param {*} p {mapViews(单个对象或者数组),geoLayer(geoServer固定图层),server(url,data,sort,layerCall)}
101
+ * @param {*} p {mapViews(单个对象或者数组),geoLayers(geoServer固定图层),server(url,data,sort,layerCall)}
94
102
  */
95
103
  static async viewLayers(p) {
96
104
  let params = OM._getParams();
97
105
  let layerHost = params.layerHost ? params.layerHost : {};
98
106
  let mapViews = p.mapViews ? (p.mapViews.length ? p.mapViews : [p.mapViews]) : [MapView.Instance];
99
107
  //先加载后端默认加载的图层
100
- let temp1 = await OM.getDic("def_view_layers");
101
- let defViewLayers = temp1.data ? JSON.parse(temp1.data) : [];
108
+ let postRes = await OM.getDic("def_view_layers");
109
+ let defViewLayers = postRes.data ? JSON.parse(postRes.data) : [];
102
110
  //遍历每个地图容器
103
111
  for (let k = 0; k < mapViews.length; k++) {
104
112
  let mapView = mapViews[k];
@@ -106,21 +114,24 @@ export default class OM {
106
114
  for (let i = 0; i < defViewLayers.length; i++) {
107
115
  let obj = defViewLayers[i];
108
116
  if (obj.type == 'ngXyz') {
109
- let layerUrl = obj.host ? layerHost[obj.host] : null;
117
+ let layerUrl = obj.hostKey ? layerHost[obj.hostKey] : null;
110
118
  obj.url = layerUrl ? layerUrl : obj.url;
111
119
  obj.layer = LayerUtil.ngXyz(obj);
112
120
  } else if (obj.type == 'wmts') {
113
- let host = obj.host ? obj.host : 'wmts';
114
- let layerUrl = layerHost[host];
121
+ let hostKey = obj.hostKey ? obj.hostKey : 'wmts';
122
+ let layerUrl = layerHost[hostKey];
115
123
  obj.urlPre = layerUrl ? layerUrl : obj.urlPre;
116
124
  obj.layer = await LayerUtil.getWmtsLayer(obj);
117
125
  } else if (obj.type == 'geoServer') {
118
- let host = obj.host ? obj.host : 'geoServer';
119
- let layerUrl = layerHost[host];
120
- obj.urlPre = layerUrl ? layerUrl : obj.urlPre;
126
+ let hostKey = obj.hostKey ? obj.hostKey : 'geoServer';
127
+ let layerUrl = layerHost[hostKey];
128
+ obj.url = InnerUtil.getGeoServerUrl(obj.url, layerUrl);
121
129
  obj.layer = LayerUtil.geoServerWmsLayer(obj);
122
130
  mapView.geoServerLayers.push(obj.name);
123
- } else {
131
+ } else if (obj.type == 'tdt') {
132
+ obj.layer = LayerUtil.onLineTianditu(obj);
133
+ }
134
+ else {
124
135
  console.error("图层类型错误:", obj);
125
136
  continue;
126
137
  }
@@ -135,22 +146,22 @@ export default class OM {
135
146
  }
136
147
  //直接加载固定的geoServer图层
137
148
  let geoLayerUrl = layerHost["geoServer"];
138
- if (p.geoLayer) {
139
- let temp1 = await OM.getDic("geoserver");
140
- let geoserverDic = temp1.data ? JSON.parse(temp1.data) : {};
141
- let geoLayer = p.geoLayer;
142
- let workspace = geoLayer.workspace ? geoLayer.workspace : geoserverDic.workspace;
143
- let url = geoLayer.wmsUrl ? geoLayer.wmsUrl : geoserverDic.url + '/' + geoserverDic.workspace + '/wms';
144
- let geoParam = { workspace: workspace, url: url };
145
- if (geoLayerUrl) {
146
- let index = geoParam.url.indexOf('/geoserver');
147
- geoParam.url = geoLayerUrl + geoParam.url.substr(index);
149
+ if (p.geoLayers) {
150
+ postRes = await OM.getDic("geoserver");
151
+ if (!postRes.data) {
152
+ throw new Error("未配置geoserver");
148
153
  }
154
+ let geoserverDic = JSON.parse(postRes.data);
155
+ let wmsUrl = geoserverDic.url + '/' + geoserverDic.workspace + '/wms';
156
+ wmsUrl = InnerUtil.getGeoServerUrl(wmsUrl, geoLayerUrl);
157
+ let geoParam = { workspace: geoserverDic.workspace, url: wmsUrl };
158
+ postRes = await OM.checkPushLayers({ layers: p.geoLayers });
159
+ let pushLayers = postRes.data ? postRes.data : [];
149
160
  for (let k = 0; k < mapViews.length; k++) {
150
161
  let mapView = mapViews[k];
151
162
  let map = mapView.map;
152
- for (let i = 0; i < geoLayer.layers.length; i++) {
153
- geoParam.name = geoLayer.layers[i];
163
+ for (let i = 0; i < pushLayers.length; i++) {
164
+ geoParam.name = pushLayers[i];
154
165
  let layer = LayerUtil.geoServerWmsLayer(geoParam);
155
166
  map.addLayer(layer);
156
167
  mapView.viewLayers.push({ type: 'geoLayer', name: geoParam.name, layer: layer });
@@ -164,11 +175,8 @@ export default class OM {
164
175
  let res = await OM.post(url, p.server.data);
165
176
  let d = res.data;
166
177
  let layerInfos = d.layerInfos;
167
- let geoParam = { workspace: d.workspace, url: d.wmsUrl };
168
- if (geoLayerUrl) {
169
- let index = geoParam.url.indexOf('/geoserver');
170
- geoParam.url = geoLayerUrl + geoParam.url.substr(index);
171
- }
178
+ let wmsUrl = InnerUtil.getGeoServerUrl(d.wmsUrl, geoLayerUrl);
179
+ let geoParam = { workspace: d.workspace, url: wmsUrl };
172
180
  //排序
173
181
  if (p.server.sort) {
174
182
  let a = [];
package/src/index.d.ts CHANGED
@@ -32,6 +32,7 @@ declare module 'cd-mapgis' {
32
32
  static total(p: any): Promise<any>;
33
33
  static buffer(p: any): Promise<any>;
34
34
  static getBound(p: any): Promise<any>;
35
+ static checkPushLayers(p: any): Promise<any>;
35
36
  static viewLayers(p: any): Promise<any>;
36
37
  static fitToLayers(p: any): void;
37
38
  }
package/src/index.js CHANGED
@@ -4,6 +4,7 @@ import MapView from './MapView.js';
4
4
  import LayerUtil from './LayerUtil.js';
5
5
  import Overlay from './Overlay.js';
6
6
  import HttpUtil from './HttpUtil.js';
7
+ import InnerUtil from './InnerUtil.js';
7
8
 
8
9
  // 导出模块
9
10
  export {
@@ -11,5 +12,6 @@ export {
11
12
  MapView,
12
13
  LayerUtil,
13
14
  Overlay,
14
- HttpUtil
15
+ HttpUtil,
16
+ InnerUtil
15
17
  };
package/test-om.js CHANGED
@@ -1,11 +1,11 @@
1
- // 导入 OM 类
2
- import { OM } from './src/index.js';
3
-
4
- // 打印 OM 类,检查是否为类而不是字符串
5
- console.log('OM 类型:', typeof OM);
6
- console.log('OM 类定义:', OM);
7
-
8
- // 测试调用静态方法(不执行实际初始化,只检查方法是否存在)
9
- console.log('OM.initMap 存在:', typeof OM.initMap === 'function');
10
-
11
- console.log('测试完成,请检查输出结果。');
1
+ // 导入 OM 类
2
+ import { OM } from './src/index.js';
3
+
4
+ // 打印 OM 类,检查是否为类而不是字符串
5
+ console.log('OM 类型:', typeof OM);
6
+ console.log('OM 类定义:', OM);
7
+
8
+ // 测试调用静态方法(不执行实际初始化,只检查方法是否存在)
9
+ console.log('OM.initMap 存在:', typeof OM.initMap === 'function');
10
+
11
+ console.log('测试完成,请检查输出结果。');