cd-mapgis 1.0.22 → 1.0.24

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.22",
3
+ "version": "1.0.24",
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/MapView.js CHANGED
@@ -139,16 +139,14 @@ export default class MapView {
139
139
  var newMaxY = centerY + newHeight / 2;
140
140
  return [newMinX, newMinY, newMaxX, newMaxY];
141
141
  }
142
- setCenter(center,useAnimation){
143
- if(useAnimation){
144
- this.map.getView().animate({
145
- center: fromLonLat(center)
146
- });
147
- }else{
142
+ setCenter(center, useAnimation) {
143
+ if (useAnimation) {
144
+ this.map.getView().animate({ center: center });
145
+ } else {
148
146
  this.map.getView().setCenter(center);
149
147
  }
150
148
  }
151
- setZoom(zoom){
149
+ setZoom(zoom) {
152
150
  this.map.getView().setZoom(zoom);
153
151
  }
154
152
  }
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,18 +114,18 @@ 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
131
  } else {
@@ -135,22 +143,22 @@ export default class OM {
135
143
  }
136
144
  //直接加载固定的geoServer图层
137
145
  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);
146
+ if (p.geoLayers) {
147
+ postRes = await OM.getDic("geoserver");
148
+ if (!postRes.data) {
149
+ throw new Error("未配置geoserver");
148
150
  }
151
+ let geoserverDic = JSON.parse(postRes.data);
152
+ let wmsUrl = geoserverDic.url + '/' + geoserverDic.workspace + '/wms';
153
+ wmsUrl = InnerUtil.getGeoServerUrl(wmsUrl, geoLayerUrl);
154
+ let geoParam = { workspace: geoserverDic.workspace, url: wmsUrl };
155
+ postRes = await OM.checkPushLayers({ layers: p.geoLayers });
156
+ let pushLayers = postRes.data ? postRes.data : [];
149
157
  for (let k = 0; k < mapViews.length; k++) {
150
158
  let mapView = mapViews[k];
151
159
  let map = mapView.map;
152
- for (let i = 0; i < geoLayer.layers.length; i++) {
153
- geoParam.name = geoLayer.layers[i];
160
+ for (let i = 0; i < pushLayers.length; i++) {
161
+ geoParam.name = pushLayers[i];
154
162
  let layer = LayerUtil.geoServerWmsLayer(geoParam);
155
163
  map.addLayer(layer);
156
164
  mapView.viewLayers.push({ type: 'geoLayer', name: geoParam.name, layer: layer });
@@ -164,11 +172,8 @@ export default class OM {
164
172
  let res = await OM.post(url, p.server.data);
165
173
  let d = res.data;
166
174
  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
- }
175
+ let wmsUrl = InnerUtil.getGeoServerUrl(d.wmsUrl, geoLayerUrl);
176
+ let geoParam = { workspace: d.workspace, url: wmsUrl };
172
177
  //排序
173
178
  if (p.server.sort) {
174
179
  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('测试完成,请检查输出结果。');