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 +1 -1
- package/src/InnerUtil.js +13 -0
- package/src/OM.js +35 -27
- 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,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.
|
|
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
|
-
} 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.
|
|
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);
|
|
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 <
|
|
153
|
-
geoParam.name =
|
|
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
|
|
168
|
-
|
|
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('测试完成,请检查输出结果。');
|