@vtx/cs-map 1.0.7 → 1.0.9
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/lib/_util/EventEmitter.js +80 -0
- package/lib/_util/EventEmitter.js.map +1 -0
- package/lib/_util/getDefaultMapInfo.js +2 -2
- package/lib/_util/getDefaultMapInfo.js.map +1 -1
- package/lib/assets/colors.png +0 -0
- package/lib/assets/colors1.png +0 -0
- package/lib/cesium-tiles-layer/CesiumTilesLayer.js +57 -0
- package/lib/cesium-tiles-layer/CesiumTilesLayer.js.map +1 -0
- package/lib/cesium-tiles-layer/index.js +55 -0
- package/lib/cesium-tiles-layer/index.js.map +1 -0
- package/lib/cesium-tiles-layer/style/css.js +4 -0
- package/lib/cesium-tiles-layer/style/css.js.map +1 -0
- package/lib/cesium-tiles-layer/style/index.css +0 -0
- package/lib/cesium-tiles-layer/style/index.js +4 -0
- package/lib/cesium-tiles-layer/style/index.js.map +1 -0
- package/lib/cesium-tiles-layer/style/index.less +0 -0
- package/lib/feature-layer/FeatureLayer.js +112 -20
- package/lib/feature-layer/FeatureLayer.js.map +1 -1
- package/lib/feature-layer/createFeatureCollection.js +4 -0
- package/lib/feature-layer/createFeatureCollection.js.map +1 -1
- package/lib/feature-layer/index.js +29 -5
- package/lib/feature-layer/index.js.map +1 -1
- package/lib/group-layer/GroupLayer.js +79 -0
- package/lib/group-layer/GroupLayer.js.map +1 -0
- package/lib/group-layer/index.js +68 -0
- package/lib/group-layer/index.js.map +1 -0
- package/lib/group-layer/style/css.js +4 -0
- package/lib/group-layer/style/css.js.map +1 -0
- package/lib/group-layer/style/index.css +0 -0
- package/lib/group-layer/style/index.js +4 -0
- package/lib/group-layer/style/index.js.map +1 -0
- package/lib/group-layer/style/index.less +0 -0
- package/lib/highlight-layer/HighlightLayer.js +177 -0
- package/lib/highlight-layer/HighlightLayer.js.map +1 -0
- package/lib/highlight-layer/index.js +25 -0
- package/lib/highlight-layer/index.js.map +1 -0
- package/lib/highlight-layer/style/css.js +4 -0
- package/lib/highlight-layer/style/css.js.map +1 -0
- package/lib/highlight-layer/style/index.css +0 -0
- package/lib/highlight-layer/style/index.js +4 -0
- package/lib/highlight-layer/style/index.js.map +1 -0
- package/lib/highlight-layer/style/index.less +0 -0
- package/lib/image-layer/ImageLayer.js +59 -16
- package/lib/image-layer/ImageLayer.js.map +1 -1
- package/lib/image-layer/index.js +39 -21
- package/lib/image-layer/index.js.map +1 -1
- package/lib/index.js +37 -2
- package/lib/index.js.map +1 -1
- package/lib/line-flow-layer/LineFlowLayer.js +106 -0
- package/lib/line-flow-layer/LineFlowLayer.js.map +1 -0
- package/lib/line-flow-layer/index.js +30 -0
- package/lib/line-flow-layer/index.js.map +1 -0
- package/lib/line-flow-layer/style/css.js +4 -0
- package/lib/line-flow-layer/style/css.js.map +1 -0
- package/lib/line-flow-layer/style/index.css +0 -0
- package/lib/line-flow-layer/style/index.js +4 -0
- package/lib/line-flow-layer/style/index.js.map +1 -0
- package/lib/line-flow-layer/style/index.less +0 -0
- package/lib/map/InfoTool/index.js.map +1 -1
- package/lib/map/Layers.js +278 -0
- package/lib/map/Layers.js.map +1 -0
- package/lib/map/Popup.js +78 -27
- package/lib/map/Popup.js.map +1 -1
- package/lib/map/hooks/useGetMapFeatureInfoByText.js +211 -0
- package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -0
- package/lib/map/index.js +296 -87
- package/lib/map/index.js.map +1 -1
- package/lib/map/material/CircleRippleMaterialProperty.js +89 -0
- package/lib/map/material/CircleRippleMaterialProperty.js.map +1 -0
- package/lib/map/style/index.css +19 -4
- package/lib/map/style/index.less +20 -4
- package/lib/marker/Marker.js.map +1 -1
- package/lib/material/TrailPolylineMaterial.js +31 -0
- package/lib/material/TrailPolylineMaterial.js.map +1 -0
- package/lib/renderer/index.js +18 -5
- package/lib/renderer/index.js.map +1 -1
- package/lib/tools/assets/footer.png +0 -0
- package/lib/tools/assets/layer.png +0 -0
- package/lib/tools/assets/search.png +0 -0
- package/lib/tools/index.js +37 -0
- package/lib/tools/index.js.map +1 -0
- package/lib/tools/layer/index.js +130 -0
- package/lib/tools/layer/index.js.map +1 -0
- package/lib/tools/search/Select/index.js +56 -0
- package/lib/tools/search/Select/index.js.map +1 -0
- package/lib/tools/search/Select/style/css.js +4 -0
- package/lib/tools/search/Select/style/css.js.map +1 -0
- package/lib/tools/search/Select/style/index.css +45 -0
- package/lib/tools/search/Select/style/index.js +4 -0
- package/lib/tools/search/Select/style/index.js.map +1 -0
- package/lib/tools/search/Select/style/index.less +47 -0
- package/lib/tools/search/index.js +203 -0
- package/lib/tools/search/index.js.map +1 -0
- package/lib/tools/style/css.js +8 -0
- package/lib/tools/style/css.js.map +1 -0
- package/lib/tools/style/index.css +130 -0
- package/lib/tools/style/index.js +8 -0
- package/lib/tools/style/index.js.map +1 -0
- package/lib/tools/style/index.less +129 -0
- package/lib/tools/tools-item/index.js +50 -0
- package/lib/tools/tools-item/index.js.map +1 -0
- package/lib/trail-polyline-layer/TrailPolylineLayer.js +84 -0
- package/lib/trail-polyline-layer/TrailPolylineLayer.js.map +1 -0
- package/lib/trail-polyline-layer/index.js +28 -0
- package/lib/trail-polyline-layer/index.js.map +1 -0
- package/lib/trail-polyline-layer/style/css.js +4 -0
- package/lib/trail-polyline-layer/style/css.js.map +1 -0
- package/lib/trail-polyline-layer/style/index.css +0 -0
- package/lib/trail-polyline-layer/style/index.js +4 -0
- package/lib/trail-polyline-layer/style/index.js.map +1 -0
- package/lib/trail-polyline-layer/style/index.less +0 -0
- package/package.json +2 -2
package/lib/map/index.js
CHANGED
|
@@ -11,15 +11,18 @@ var _cesium = require("cesium");
|
|
|
11
11
|
require("./base");
|
|
12
12
|
require("./material");
|
|
13
13
|
var _AmapMercatorTilingScheme = _interopRequireDefault(require("./base/imagery/transform/AmapMercatorTilingScheme"));
|
|
14
|
-
var _ImageLayer = _interopRequireDefault(require("../image-layer/ImageLayer"));
|
|
15
14
|
var _getDefaultMapInfo2 = _interopRequireDefault(require("../_util/getDefaultMapInfo"));
|
|
16
15
|
require("cesium/Build/Cesium/Widgets/widgets.css");
|
|
17
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
18
17
|
var _events = require("../events");
|
|
19
18
|
var _Popup = _interopRequireDefault(require("./Popup"));
|
|
20
19
|
var _Provider = _interopRequireDefault(require("../_util/Provider"));
|
|
21
|
-
var
|
|
22
|
-
|
|
20
|
+
var _Layers = _interopRequireDefault(require("./Layers"));
|
|
21
|
+
var _EventEmitter = _interopRequireDefault(require("../_util/EventEmitter"));
|
|
22
|
+
var _useGetMapFeatureInfoByText = _interopRequireDefault(require("./hooks/useGetMapFeatureInfoByText"));
|
|
23
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
24
|
+
var _excluded = ["center", "dark", "zoom", "createdMap"],
|
|
25
|
+
_excluded2 = ["entity", "lng", "lat", "height"];
|
|
23
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
24
27
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -46,7 +49,14 @@ function Map(props) {
|
|
|
46
49
|
_props$height = props.height,
|
|
47
50
|
height = _props$height === void 0 ? '100%' : _props$height,
|
|
48
51
|
dark = props.dark,
|
|
49
|
-
|
|
52
|
+
_props$mapStyle = props.mapStyle,
|
|
53
|
+
mapStyle = _props$mapStyle === void 0 ? 'vec' : _props$mapStyle,
|
|
54
|
+
tk = props.tk,
|
|
55
|
+
children = props.children,
|
|
56
|
+
onCloseTemplateBefore = props.onCloseTemplateBefore,
|
|
57
|
+
onZoom = props.onZoom,
|
|
58
|
+
_props$onEvents = props.onEvents,
|
|
59
|
+
onEvents = _props$onEvents === void 0 ? {} : _props$onEvents;
|
|
50
60
|
var _useState = (0, _react.useState)(false),
|
|
51
61
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
62
|
mapLoaded = _useState2[0],
|
|
@@ -63,17 +73,69 @@ function Map(props) {
|
|
|
63
73
|
var mapDomRef = (0, _react.useRef)(null);
|
|
64
74
|
var tipRef = (0, _react.useRef)(null);
|
|
65
75
|
var popupRef = (0, _react.useRef)();
|
|
76
|
+
var getMapFeatureInfoByText = (0, _useGetMapFeatureInfoByText["default"])(mapRef);
|
|
66
77
|
(0, _react.useEffect)(function () {
|
|
67
78
|
initMap();
|
|
68
79
|
}, []);
|
|
80
|
+
var imgLayerVisible = function imgLayerVisible() {
|
|
81
|
+
if (mapRef.current) {
|
|
82
|
+
var layers = mapRef.current.imageryLayers._layers || [];
|
|
83
|
+
layers.map(function (item) {
|
|
84
|
+
var _item$_imageryProvide;
|
|
85
|
+
if (['img_w', 'cia_w'].includes((_item$_imageryProvide = item._imageryProvider) === null || _item$_imageryProvide === void 0 ? void 0 : _item$_imageryProvide._layer)) {
|
|
86
|
+
item.show = mapStyle === 'img';
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
var addImageryProvider = function addImageryProvider() {
|
|
92
|
+
var TDT_IMG_W = "http://{s}.tianditu.gov.cn/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=".concat(tk);
|
|
93
|
+
var TDT_CIA_W = "http://{s}.tianditu.gov.cn/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=".concat(tk);
|
|
94
|
+
var Img = new _cesium.WebMapTileServiceImageryProvider({
|
|
95
|
+
//调用影响中文服务
|
|
96
|
+
url: TDT_IMG_W,
|
|
97
|
+
// url地址,换影像还是矢量,随便你喜欢
|
|
98
|
+
layer: 'img_w',
|
|
99
|
+
// WMTS请求的层名称
|
|
100
|
+
style: 'default',
|
|
101
|
+
// WMTS请求的样式名称
|
|
102
|
+
format: 'tiles',
|
|
103
|
+
// MIME类型,用于从服务器检索图像
|
|
104
|
+
tileMatrixSetID: 'GoogleMapsCompatible',
|
|
105
|
+
// 用于WMTS请求的TileMatrixSet的标识符
|
|
106
|
+
subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
|
|
107
|
+
// 天地图8个服务器
|
|
108
|
+
minimumLevel: 0,
|
|
109
|
+
// 最小层级
|
|
110
|
+
maximumLevel: 18 // 最大层级
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
mapRef.current.imageryLayers.addImageryProvider(Img); // 添加到cesium图层上
|
|
114
|
+
|
|
115
|
+
var cia = new _cesium.WebMapTileServiceImageryProvider({
|
|
116
|
+
// 调用影响中文注记服务
|
|
117
|
+
url: TDT_CIA_W,
|
|
118
|
+
layer: 'cia_w',
|
|
119
|
+
style: 'default',
|
|
120
|
+
format: 'tiles',
|
|
121
|
+
tileMatrixSetID: 'GoogleMapsCompatible',
|
|
122
|
+
subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
|
|
123
|
+
// 天地图8个服务器
|
|
124
|
+
minimumLevel: 0,
|
|
125
|
+
maximumLevel: 18
|
|
126
|
+
});
|
|
127
|
+
mapRef.current.imageryLayers.addImageryProvider(cia); // 添加到cesium图层上
|
|
128
|
+
|
|
129
|
+
imgLayerVisible();
|
|
130
|
+
};
|
|
131
|
+
(0, _react.useEffect)(function () {
|
|
132
|
+
imgLayerVisible();
|
|
133
|
+
}, [mapStyle]);
|
|
69
134
|
var initMap = function initMap() {
|
|
70
135
|
var center = props.center,
|
|
71
136
|
dark = props.dark,
|
|
72
137
|
zoom = props.zoom,
|
|
73
138
|
createdMap = props.createdMap,
|
|
74
|
-
_props$style = props.style,
|
|
75
|
-
style = _props$style === void 0 ? 'vec' : _props$style,
|
|
76
|
-
tk = props.tk,
|
|
77
139
|
options = _objectWithoutProperties(props, _excluded);
|
|
78
140
|
var _getDefaultMapInfo = (0, _getDefaultMapInfo2["default"])(),
|
|
79
141
|
minZoom = _getDefaultMapInfo.minZoom,
|
|
@@ -89,6 +151,7 @@ function Map(props) {
|
|
|
89
151
|
minZoom: minZoom && Number(minZoom) || 0,
|
|
90
152
|
maxZoom: maxZoom && Number(maxZoom) || 20
|
|
91
153
|
};
|
|
154
|
+
_cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhZjc0ZDQ1ZS0wNWNhLTRhMDQtODJmYy03NTcyNDcxYzgzMDUiLCJpZCI6NzE4MTQsImlhdCI6MTYzNTQ3NzgyNX0.4TrdZWPWc9_6jLeGe90bRmBPB14XptwinSewVMu1iCE';
|
|
92
155
|
var map = new _cesium.Viewer(mapDomRef.current, _objectSpread({
|
|
93
156
|
shouldAnimate: true,
|
|
94
157
|
animation: false,
|
|
@@ -127,51 +190,131 @@ function Map(props) {
|
|
|
127
190
|
})
|
|
128
191
|
}, options));
|
|
129
192
|
|
|
193
|
+
// 事件订阅
|
|
194
|
+
map.eventEmitter = new _EventEmitter["default"]();
|
|
195
|
+
|
|
130
196
|
// 去版权信息
|
|
131
197
|
map._cesiumWidget._creditContainer.style.display = 'none'; // 隐藏cesium ion
|
|
132
198
|
|
|
133
199
|
mapRef.current = map;
|
|
200
|
+
addImageryProvider();
|
|
134
201
|
|
|
135
|
-
//
|
|
136
|
-
map.
|
|
137
|
-
|
|
202
|
+
// 添加 dataSource 和 imagery 图层
|
|
203
|
+
map.layers = new _Layers["default"]({
|
|
204
|
+
map: map
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// 图层改变的时候
|
|
208
|
+
map.layers.on('change', function (layers) {
|
|
209
|
+
onEvents.layersChange && onEvents.layersChange(layers);
|
|
210
|
+
map.eventEmitter.emit('layersChange', layers);
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// 图层新增
|
|
214
|
+
map.layers.on('add', function (layer) {
|
|
215
|
+
onEvents.layersAdd && onEvents.layersAdd(layer);
|
|
216
|
+
map.eventEmitter.emit('layersAdd', layer);
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// 图层移除
|
|
220
|
+
map.layers.on('remove', function (layer) {
|
|
221
|
+
onEvents.layersRemove && onEvents.layersRemove(layer);
|
|
222
|
+
map.eventEmitter.emit('layersRemove', layer);
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
// 图层清空
|
|
226
|
+
map.layers.on('clear', function () {
|
|
227
|
+
onEvents.layersClear && onEvents.layersClear();
|
|
228
|
+
map.eventEmitter.emit('layersClear');
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// 图层展示隐藏
|
|
232
|
+
map.layers.on('visible', function (layer, visible) {
|
|
233
|
+
map.layers.onChange(); // 触发图层改变
|
|
234
|
+
|
|
235
|
+
// 图层关闭时,隐藏自身的气泡
|
|
236
|
+
if (!visible && map.popupRef) {
|
|
237
|
+
map.hideTemplate(layer);
|
|
238
|
+
}
|
|
239
|
+
onEvents.layersVisible && onEvents.layersVisible(layer, visible);
|
|
240
|
+
map.eventEmitter.emit('layersVisible');
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
// 图层变化
|
|
244
|
+
map.layersChange = function () {
|
|
245
|
+
map.layers.onChange();
|
|
138
246
|
};
|
|
139
247
|
|
|
140
|
-
//
|
|
141
|
-
map.
|
|
142
|
-
|
|
248
|
+
// 获取 layers 里面的 key 集合
|
|
249
|
+
map.getAllKeys = function () {
|
|
250
|
+
return map.layers.getAllKeys();
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
// 获取当前展示的 keys
|
|
254
|
+
map.getLayersShowKeys = function () {
|
|
255
|
+
return map.layers.getShowKeys();
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
// 获取当前隐藏的 keys
|
|
259
|
+
map.getLayersHiddenKeys = function () {
|
|
260
|
+
return map.layers.getHiddenKeys();
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// 根据 keys 设置图层的显示,其他的隐藏
|
|
264
|
+
map.setLayersShowByKeys = function (_keys) {
|
|
265
|
+
return map.layers.setShowByKeys(_keys);
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
// 根据 keys 设置图层的隐藏,其他的显示
|
|
269
|
+
map.setLayersHideByKeys = function (_keys) {
|
|
270
|
+
return map.layers.setHideByKeys(_keys);
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// 添加图层
|
|
274
|
+
map.addLayer = function (layer) {
|
|
275
|
+
return map.layers.addLayer(layer);
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
// 移除图层
|
|
279
|
+
map.removeLayer = function (layer) {
|
|
280
|
+
return map.layers.removeLayer(layer);
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
// 清除图层和entity
|
|
284
|
+
map.clearLayers = function () {
|
|
285
|
+
return map.layers.clearLayers();
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
// 获取 ImageLayer 图层
|
|
289
|
+
map.getImageLayers = function (keys) {
|
|
290
|
+
return map.layers.getImageLayers(keys);
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
// 获取 FeatureLayer 图层
|
|
294
|
+
map.getFeatureLayers = function (keys) {
|
|
295
|
+
return map.layers.getFeatureLayers(keys);
|
|
143
296
|
};
|
|
144
297
|
|
|
145
298
|
// 查找所有dataSource和imagery图层
|
|
146
299
|
map.getAllLayers = function () {
|
|
147
|
-
var _map$dataSources, _map$imageryLayers;
|
|
300
|
+
var _map$dataSources, _map$imageryLayers, _map$scene;
|
|
148
301
|
var dataSources = (map === null || map === void 0 || (_map$dataSources = map.dataSources) === null || _map$dataSources === void 0 ? void 0 : _map$dataSources._dataSources) || [];
|
|
149
302
|
var imageryLayers = (map === null || map === void 0 || (_map$imageryLayers = map.imageryLayers) === null || _map$imageryLayers === void 0 ? void 0 : _map$imageryLayers._layers) || [];
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
// 添加dataSource和imagery图层
|
|
154
|
-
map.addLayer = function (layer) {
|
|
155
|
-
if (layer instanceof _cesium.CustomDataSource) {
|
|
156
|
-
map.dataSources.add(layer);
|
|
157
|
-
} else if (layer instanceof _ImageLayer["default"]) {
|
|
158
|
-
map.scene.imageryLayers.add(layer);
|
|
159
|
-
}
|
|
303
|
+
var primitives = (map === null || map === void 0 || (_map$scene = map.scene) === null || _map$scene === void 0 || (_map$scene = _map$scene.primitives) === null || _map$scene === void 0 ? void 0 : _map$scene._primitives) || [];
|
|
304
|
+
return [].concat(_toConsumableArray(dataSources), _toConsumableArray(imageryLayers), _toConsumableArray(primitives));
|
|
160
305
|
};
|
|
161
306
|
|
|
162
307
|
// 根据key查找imageryLayers图层
|
|
163
|
-
map.getImageryLayers = function (
|
|
308
|
+
map.getImageryLayers = function (_keys) {
|
|
164
309
|
var _map$imageryLayers2;
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return keys.includes(layer.key);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
});
|
|
174
|
-
return imageryLayers;
|
|
310
|
+
var layers = (map === null || map === void 0 || (_map$imageryLayers2 = map.imageryLayers) === null || _map$imageryLayers2 === void 0 ? void 0 : _map$imageryLayers2._layers) || [];
|
|
311
|
+
if (_keys && layers.length) {
|
|
312
|
+
var keys = Array.isArray(_keys) ? _keys : [_keys];
|
|
313
|
+
return layers.filter(function (layer) {
|
|
314
|
+
return layer.key && keys.includes(layer.key);
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return layers;
|
|
175
318
|
};
|
|
176
319
|
|
|
177
320
|
// 通过图形查询所属图层
|
|
@@ -182,6 +325,11 @@ function Map(props) {
|
|
|
182
325
|
if (layer !== null && layer !== void 0 && layer.key && layer.key === (entity === null || entity === void 0 || (_entity$imageryLayer = entity.imageryLayer) === null || _entity$imageryLayer === void 0 ? void 0 : _entity$imageryLayer.key)) {
|
|
183
326
|
return layer;
|
|
184
327
|
}
|
|
328
|
+
} else if (layer instanceof _cesium.Primitive) {
|
|
329
|
+
var _entity$primitive;
|
|
330
|
+
if (layer !== null && layer !== void 0 && layer.key && layer.key === (entity === null || entity === void 0 || (_entity$primitive = entity.primitive) === null || _entity$primitive === void 0 ? void 0 : _entity$primitive.key)) {
|
|
331
|
+
return layer;
|
|
332
|
+
}
|
|
185
333
|
} else {
|
|
186
334
|
if (layer !== null && layer !== void 0 && layer.key && layer.key === (entity === null || entity === void 0 ? void 0 : entity.key)) {
|
|
187
335
|
return layer;
|
|
@@ -193,6 +341,11 @@ function Map(props) {
|
|
|
193
341
|
// 获取entity中数据
|
|
194
342
|
map.getProperties = function (feature) {
|
|
195
343
|
var _feature$_properties, _properties;
|
|
344
|
+
if (feature !== null && feature !== void 0 && feature.primitive && (feature === null || feature === void 0 ? void 0 : feature.primitive) instanceof _cesium.Primitive) {
|
|
345
|
+
return feature.primitive.data.find(function (item) {
|
|
346
|
+
return item.id === feature.id;
|
|
347
|
+
});
|
|
348
|
+
}
|
|
196
349
|
var properties = (feature === null || feature === void 0 || (_feature$_properties = feature._properties) === null || _feature$_properties === void 0 ? void 0 : _feature$_properties.getValue(feature._id)) || (feature === null || feature === void 0 ? void 0 : feature.properties) || {};
|
|
197
350
|
properties = ((_properties = properties) === null || _properties === void 0 ? void 0 : _properties.properties) || properties;
|
|
198
351
|
return properties;
|
|
@@ -205,10 +358,24 @@ function Map(props) {
|
|
|
205
358
|
});
|
|
206
359
|
};
|
|
207
360
|
|
|
361
|
+
// 通过keys查询多个图层
|
|
362
|
+
map.getLayerByKeys = function (keys) {
|
|
363
|
+
return map.getAllLayers().filter(function (layer) {
|
|
364
|
+
return layer.key && keys.includes(layer.key);
|
|
365
|
+
});
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
// 通过返回值控制是否执行关闭
|
|
369
|
+
map.onCloseTemplateBefore = function (feature) {
|
|
370
|
+
if (onCloseTemplateBefore) {
|
|
371
|
+
return onCloseTemplateBefore(feature);
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
|
|
208
375
|
// 根据key查找展示的图层
|
|
209
376
|
map.getVisibleLayersByKeys = function (keys) {
|
|
210
377
|
var layers = map.getAllLayers() || [];
|
|
211
|
-
|
|
378
|
+
return layers.filter(function (layer) {
|
|
212
379
|
if (typeof keys === 'string') {
|
|
213
380
|
return layer.key === keys && layer.show;
|
|
214
381
|
} else if (Array.isArray(keys)) {
|
|
@@ -217,19 +384,16 @@ function Map(props) {
|
|
|
217
384
|
return layer.show && layer.key;
|
|
218
385
|
}
|
|
219
386
|
});
|
|
220
|
-
return _layers;
|
|
221
387
|
};
|
|
222
388
|
|
|
223
|
-
//
|
|
224
|
-
map.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
});
|
|
232
|
-
map.entities.removeAll();
|
|
389
|
+
// 展示提示
|
|
390
|
+
map.showTip = function (content) {
|
|
391
|
+
setTip(content);
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
// 隐藏提示
|
|
395
|
+
map.hideTip = function () {
|
|
396
|
+
setTip(null);
|
|
233
397
|
};
|
|
234
398
|
|
|
235
399
|
// 展示看板
|
|
@@ -241,6 +405,8 @@ function Map(props) {
|
|
|
241
405
|
map.hideTemplate = function () {
|
|
242
406
|
popupRef.current.hideTemplate();
|
|
243
407
|
};
|
|
408
|
+
|
|
409
|
+
// 鼠标事件控制器
|
|
244
410
|
var handlePoint = new _cesium.ScreenSpaceEventHandler(map.scene.canvas);
|
|
245
411
|
|
|
246
412
|
// 获取图层上的图形信息
|
|
@@ -248,10 +414,16 @@ function Map(props) {
|
|
|
248
414
|
if (event !== null && event !== void 0 && event.position) {
|
|
249
415
|
var position = event.position;
|
|
250
416
|
var pick = map.scene.pick(position);
|
|
251
|
-
|
|
417
|
+
if (_lodash["default"].isObject(pick === null || pick === void 0 ? void 0 : pick.id)) {
|
|
418
|
+
return pick.id;
|
|
419
|
+
}
|
|
420
|
+
return pick;
|
|
252
421
|
}
|
|
253
422
|
};
|
|
254
423
|
|
|
424
|
+
// 根据关键字获取图形信息
|
|
425
|
+
map.getMapFeatureInfoByText = getMapFeatureInfoByText;
|
|
426
|
+
|
|
255
427
|
// 获取wms的图形数据
|
|
256
428
|
map.pickImageryLayerFeatures = function (event) {
|
|
257
429
|
if (event !== null && event !== void 0 && event.position) {
|
|
@@ -263,11 +435,16 @@ function Map(props) {
|
|
|
263
435
|
|
|
264
436
|
// 注册事件
|
|
265
437
|
(0, _events.registerEventLayer)(map, props);
|
|
438
|
+
|
|
439
|
+
// 注册地图组件事件
|
|
266
440
|
function registerMapEvent(e, event) {
|
|
267
441
|
if (map[event]) {
|
|
268
442
|
map[event](e);
|
|
443
|
+
onEvents[event] && onEvents[event](e);
|
|
269
444
|
}
|
|
270
445
|
}
|
|
446
|
+
|
|
447
|
+
// 注册图层组件事件
|
|
271
448
|
function registerEvent(feature, event) {
|
|
272
449
|
if (feature) {
|
|
273
450
|
var _feature$event;
|
|
@@ -286,6 +463,12 @@ function Map(props) {
|
|
|
286
463
|
handlePoint.setInputAction(function (event) {
|
|
287
464
|
registerMapEvent(event, 'onClick');
|
|
288
465
|
map.hideTip();
|
|
466
|
+
var cartesian = map.camera.pickEllipsoid(event.position, map.scene.globe.ellipsoid); // Cartesian3对象
|
|
467
|
+
var cartographic = _cesium.Cartographic.fromCartesian(cartesian); // 经纬高对象
|
|
468
|
+
var lng = _cesium.Math.toDegrees(cartographic.longitude);
|
|
469
|
+
var lat = _cesium.Math.toDegrees(cartographic.latitude);
|
|
470
|
+
var location = [lng, lat]; // 即为经纬度数组
|
|
471
|
+
console.log("location:", location);
|
|
289
472
|
var entity = map.pickDataSourcesFeature(event);
|
|
290
473
|
var featuresPromise = map.pickImageryLayerFeatures(event);
|
|
291
474
|
if (entity) {
|
|
@@ -313,11 +496,13 @@ function Map(props) {
|
|
|
313
496
|
// 鼠标移动
|
|
314
497
|
var hoverFeature;
|
|
315
498
|
var getUid = function getUid(feature) {
|
|
316
|
-
if (!feature._id) {
|
|
317
|
-
feature._id =
|
|
499
|
+
if (feature && !feature._id) {
|
|
500
|
+
feature._id = window.Math.random();
|
|
318
501
|
}
|
|
319
502
|
return feature._id;
|
|
320
503
|
};
|
|
504
|
+
|
|
505
|
+
// 鼠标移入移除
|
|
321
506
|
handlePoint.setInputAction(function (event) {
|
|
322
507
|
registerMapEvent(event, 'onMouseMove');
|
|
323
508
|
var feature = map.pickDataSourcesFeature({
|
|
@@ -350,24 +535,55 @@ function Map(props) {
|
|
|
350
535
|
}
|
|
351
536
|
}, _cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
352
537
|
|
|
353
|
-
//
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
538
|
+
// 层级事件
|
|
539
|
+
if (onZoom) {
|
|
540
|
+
map.camera.moveEnd.addEventListener(function () {
|
|
541
|
+
var viewRectangle = map.camera.computeViewRectangle();
|
|
542
|
+
var west = viewRectangle.west / _cesium.Math.PI * 180; // 左上方(西)
|
|
543
|
+
var north = viewRectangle.north / _cesium.Math.PI * 180; //右上方(北)
|
|
544
|
+
var east = viewRectangle.east / _cesium.Math.PI * 180; // 右下方(东)
|
|
545
|
+
var south = viewRectangle.south / _cesium.Math.PI * 180; // 左下方(南)
|
|
546
|
+
var cameraHeight = map.camera.positionCartographic.height;
|
|
547
|
+
onZoom && onZoom({
|
|
548
|
+
west: west,
|
|
549
|
+
north: north,
|
|
550
|
+
east: east,
|
|
551
|
+
south: south,
|
|
552
|
+
cameraHeight: cameraHeight,
|
|
553
|
+
viewRectangle: viewRectangle
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
// 动态调整视角,不传参数为默认视角,参数可以是图层、图形、数据等
|
|
360
559
|
map.fitView = function (e) {
|
|
361
560
|
var _ref = e || {},
|
|
362
561
|
entity = _ref.entity,
|
|
363
|
-
|
|
562
|
+
lng = _ref.lng,
|
|
563
|
+
lat = _ref.lat,
|
|
364
564
|
_ref$height = _ref.height,
|
|
365
|
-
height = _ref$height === void 0 ? 50000 : _ref$height
|
|
565
|
+
height = _ref$height === void 0 ? 50000 : _ref$height,
|
|
566
|
+
rest = _objectWithoutProperties(_ref, _excluded2);
|
|
567
|
+
var pitch = map.camera.pitch;
|
|
366
568
|
// 判断是否点击了图形
|
|
367
569
|
if (entity) {
|
|
368
|
-
map.
|
|
369
|
-
duration: 2
|
|
570
|
+
map.flyTo(entity, {
|
|
571
|
+
duration: 2,
|
|
572
|
+
offset: {
|
|
573
|
+
heading: _cesium.Math.toRadians(0.0),
|
|
574
|
+
pitch: pitch,
|
|
575
|
+
range: height
|
|
576
|
+
}
|
|
370
577
|
});
|
|
578
|
+
} else if (lng && lat) {
|
|
579
|
+
map.camera.flyTo(_objectSpread({
|
|
580
|
+
destination: new _cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), height),
|
|
581
|
+
orientation: {
|
|
582
|
+
pitch: _cesium.Math.toRadians(-88.0),
|
|
583
|
+
roll: 0.0
|
|
584
|
+
},
|
|
585
|
+
duration: 2
|
|
586
|
+
}, rest));
|
|
371
587
|
} else {
|
|
372
588
|
var _viewDefault$center = _slicedToArray(viewDefault.center, 3),
|
|
373
589
|
x = _viewDefault$center[0],
|
|
@@ -384,27 +600,16 @@ function Map(props) {
|
|
|
384
600
|
});
|
|
385
601
|
}
|
|
386
602
|
};
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
lng = _ref2.lng,
|
|
390
|
-
lat = _ref2.lat,
|
|
391
|
-
_ref2$z = _ref2.z,
|
|
392
|
-
z = _ref2$z === void 0 ? 50000 : _ref2$z,
|
|
393
|
-
rest = _objectWithoutProperties(_ref2, _excluded2);
|
|
394
|
-
if (lng && lat) {
|
|
395
|
-
map.camera.flyTo(_objectSpread({
|
|
396
|
-
destination: new _cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), z),
|
|
397
|
-
orientation: {
|
|
398
|
-
pitch: _cesium.Math.toRadians(-88.0),
|
|
399
|
-
roll: 0.0
|
|
400
|
-
},
|
|
401
|
-
duration: 2
|
|
402
|
-
}, rest));
|
|
403
|
-
}
|
|
404
|
-
};
|
|
603
|
+
|
|
604
|
+
// 自动调整视角
|
|
405
605
|
map.fitView();
|
|
406
|
-
|
|
407
|
-
|
|
606
|
+
|
|
607
|
+
// 延时触发回调事件
|
|
608
|
+
setTimeout(function () {
|
|
609
|
+
createdMap && createdMap(map);
|
|
610
|
+
onEvents.createdMap && onEvents.createdMap(map);
|
|
611
|
+
setMapLoaded(true);
|
|
612
|
+
}, 3000);
|
|
408
613
|
};
|
|
409
614
|
var onMouseMove = function onMouseMove(event) {
|
|
410
615
|
if (tip) {
|
|
@@ -432,13 +637,14 @@ function Map(props) {
|
|
|
432
637
|
}, tip && tipVis && /*#__PURE__*/_react["default"].createElement("div", {
|
|
433
638
|
ref: tipRef,
|
|
434
639
|
className: (0, _classnames["default"])('custom-tip')
|
|
435
|
-
}, tip)
|
|
640
|
+
}, tip), mapRef.current && /*#__PURE__*/_react["default"].createElement(_Popup["default"], {
|
|
641
|
+
ref: popupRef,
|
|
642
|
+
map: mapRef.current
|
|
643
|
+
})), mapLoaded && /*#__PURE__*/_react["default"].createElement(_Provider["default"], {
|
|
436
644
|
value: {
|
|
437
645
|
map: mapRef.current
|
|
438
646
|
}
|
|
439
|
-
},
|
|
440
|
-
ref: popupRef
|
|
441
|
-
}), children));
|
|
647
|
+
}, children));
|
|
442
648
|
}
|
|
443
649
|
var _default = Map;
|
|
444
650
|
exports["default"] = _default;
|
|
@@ -446,12 +652,15 @@ Map.propTypes = {
|
|
|
446
652
|
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
447
653
|
height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
448
654
|
createdMap: _propTypes["default"].func,
|
|
655
|
+
onCloseTemplateBefore: _propTypes["default"].func,
|
|
656
|
+
onZoom: _propTypes["default"].func,
|
|
449
657
|
center: _propTypes["default"].array,
|
|
450
658
|
zoom: _propTypes["default"].number,
|
|
451
659
|
minZoom: _propTypes["default"].number,
|
|
452
660
|
maxZoom: _propTypes["default"].number,
|
|
453
661
|
dark: _propTypes["default"].bool,
|
|
454
|
-
|
|
455
|
-
tk: _propTypes["default"].string.isRequired
|
|
662
|
+
mapStyle: _propTypes["default"].oneOfType(['vec', 'img']),
|
|
663
|
+
tk: _propTypes["default"].string.isRequired,
|
|
664
|
+
onEvents: _propTypes["default"].object
|
|
456
665
|
};
|
|
457
666
|
//# sourceMappingURL=index.js.map
|