cd-mapgis 1.0.23 → 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 +1 -1
- package/src/InnerUtil.js +13 -0
- package/src/OM.js +31 -26
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -1
- package/test-om.js +11 -11
package/package.json
CHANGED
package/src/InnerUtil.js
ADDED
|
@@ -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(单个对象或者数组),
|
|
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
|
|
101
|
-
let defViewLayers =
|
|
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.
|
|
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
|
|
114
|
-
let layerUrl = layerHost[
|
|
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
|
|
119
|
-
let layerUrl = layerHost[
|
|
120
|
-
obj.
|
|
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.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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 <
|
|
153
|
-
geoParam.name =
|
|
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
|
|
168
|
-
|
|
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('测试完成,请检查输出结果。');
|