@vtx/cs-map 1.0.7 → 1.0.8

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.
Files changed (103) hide show
  1. package/lib/_util/EventEmitter.js +80 -0
  2. package/lib/_util/EventEmitter.js.map +1 -0
  3. package/lib/_util/getDefaultMapInfo.js +2 -2
  4. package/lib/_util/getDefaultMapInfo.js.map +1 -1
  5. package/lib/assets/colors.png +0 -0
  6. package/lib/assets/colors1.png +0 -0
  7. package/lib/cesium-3dtiles-layer/Cesium3DTilesLayer.js +38 -0
  8. package/lib/cesium-3dtiles-layer/Cesium3DTilesLayer.js.map +1 -0
  9. package/lib/cesium-3dtiles-layer/index.js +30 -0
  10. package/lib/cesium-3dtiles-layer/index.js.map +1 -0
  11. package/lib/feature-layer/FeatureLayer.js +44 -12
  12. package/lib/feature-layer/FeatureLayer.js.map +1 -1
  13. package/lib/feature-layer/createFeatureCollection.js +4 -0
  14. package/lib/feature-layer/createFeatureCollection.js.map +1 -1
  15. package/lib/feature-layer/index.js +22 -5
  16. package/lib/feature-layer/index.js.map +1 -1
  17. package/lib/group-layer/GroupLayer.js +89 -0
  18. package/lib/group-layer/GroupLayer.js.map +1 -0
  19. package/lib/group-layer/index.js +68 -0
  20. package/lib/group-layer/index.js.map +1 -0
  21. package/lib/group-layer/style/css.js +4 -0
  22. package/lib/group-layer/style/css.js.map +1 -0
  23. package/lib/group-layer/style/index.css +0 -0
  24. package/lib/group-layer/style/index.js +4 -0
  25. package/lib/group-layer/style/index.js.map +1 -0
  26. package/lib/group-layer/style/index.less +0 -0
  27. package/lib/highlight-layer/HighlightLayer.js +172 -0
  28. package/lib/highlight-layer/HighlightLayer.js.map +1 -0
  29. package/lib/highlight-layer/index.js +25 -0
  30. package/lib/highlight-layer/index.js.map +1 -0
  31. package/lib/highlight-layer/style/css.js +4 -0
  32. package/lib/highlight-layer/style/css.js.map +1 -0
  33. package/lib/highlight-layer/style/index.css +0 -0
  34. package/lib/highlight-layer/style/index.js +4 -0
  35. package/lib/highlight-layer/style/index.js.map +1 -0
  36. package/lib/highlight-layer/style/index.less +0 -0
  37. package/lib/image-layer/ImageLayer.js +44 -18
  38. package/lib/image-layer/ImageLayer.js.map +1 -1
  39. package/lib/image-layer/index.js +37 -21
  40. package/lib/image-layer/index.js.map +1 -1
  41. package/lib/index.js +30 -2
  42. package/lib/index.js.map +1 -1
  43. package/lib/line-flow-layer/LineFlowLayer.js +110 -0
  44. package/lib/line-flow-layer/LineFlowLayer.js.map +1 -0
  45. package/lib/line-flow-layer/index.js +30 -0
  46. package/lib/line-flow-layer/index.js.map +1 -0
  47. package/lib/line-flow-layer/style/css.js +4 -0
  48. package/lib/line-flow-layer/style/css.js.map +1 -0
  49. package/lib/line-flow-layer/style/index.css +0 -0
  50. package/lib/line-flow-layer/style/index.js +4 -0
  51. package/lib/line-flow-layer/style/index.js.map +1 -0
  52. package/lib/line-flow-layer/style/index.less +0 -0
  53. package/lib/map/InfoTool/index.js.map +1 -1
  54. package/lib/map/Popup.js +54 -16
  55. package/lib/map/Popup.js.map +1 -1
  56. package/lib/map/hooks/useGetMapFeatureInfoByText.js +211 -0
  57. package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -0
  58. package/lib/map/index.js +208 -61
  59. package/lib/map/index.js.map +1 -1
  60. package/lib/map/style/index.css +19 -4
  61. package/lib/map/style/index.less +20 -4
  62. package/lib/marker/Marker.js +1 -0
  63. package/lib/marker/Marker.js.map +1 -1
  64. package/lib/material/TrailPolylineMaterial.js +31 -0
  65. package/lib/material/TrailPolylineMaterial.js.map +1 -0
  66. package/lib/renderer/index.js +3 -0
  67. package/lib/renderer/index.js.map +1 -1
  68. package/lib/tools/assets/footer.png +0 -0
  69. package/lib/tools/assets/layer.png +0 -0
  70. package/lib/tools/assets/search.png +0 -0
  71. package/lib/tools/index.js +37 -0
  72. package/lib/tools/index.js.map +1 -0
  73. package/lib/tools/layer/index.js +169 -0
  74. package/lib/tools/layer/index.js.map +1 -0
  75. package/lib/tools/search/Select/index.js +56 -0
  76. package/lib/tools/search/Select/index.js.map +1 -0
  77. package/lib/tools/search/Select/style/css.js +4 -0
  78. package/lib/tools/search/Select/style/css.js.map +1 -0
  79. package/lib/tools/search/Select/style/index.css +45 -0
  80. package/lib/tools/search/Select/style/index.js +4 -0
  81. package/lib/tools/search/Select/style/index.js.map +1 -0
  82. package/lib/tools/search/Select/style/index.less +47 -0
  83. package/lib/tools/search/index.js +203 -0
  84. package/lib/tools/search/index.js.map +1 -0
  85. package/lib/tools/style/css.js +8 -0
  86. package/lib/tools/style/css.js.map +1 -0
  87. package/lib/tools/style/index.css +123 -0
  88. package/lib/tools/style/index.js +8 -0
  89. package/lib/tools/style/index.js.map +1 -0
  90. package/lib/tools/style/index.less +120 -0
  91. package/lib/tools/tools-item/index.js +50 -0
  92. package/lib/tools/tools-item/index.js.map +1 -0
  93. package/lib/trail-polyline-layer/TrailPolylineLayer.js +84 -0
  94. package/lib/trail-polyline-layer/TrailPolylineLayer.js.map +1 -0
  95. package/lib/trail-polyline-layer/index.js +28 -0
  96. package/lib/trail-polyline-layer/index.js.map +1 -0
  97. package/lib/trail-polyline-layer/style/css.js +4 -0
  98. package/lib/trail-polyline-layer/style/css.js.map +1 -0
  99. package/lib/trail-polyline-layer/style/index.css +0 -0
  100. package/lib/trail-polyline-layer/style/index.js +4 -0
  101. package/lib/trail-polyline-layer/style/index.js.map +1 -0
  102. package/lib/trail-polyline-layer/style/index.less +0 -0
  103. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetMapFeatureInfoByText.js","names":["_utils","require","_cesium","_lodash","_mapTool","_interopRequireDefault","_getDefaultMapInfo2","obj","__esModule","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","handleResult","features","field","map","_v$_properties","_properties","_properties2","_properties3","_properties4","_properties5","properties","getValue","_id","label","id","facilityId","feature","getVectorFeatureInfoByText","layer","searchText","_layer$entities","entities","_features","filter","_v$_properties2","_properties6","_properties7","indexOf","getWmsFeatureInfoByText","imageryProvider","_imageryProvider","tenantId","getUrlParam","localStorage","getItem","params","maxFeatures","service","request","version","outputFormat","geoserverUrl","_getFeatureInfoUrl","typeName","_layers","cql_filter","_pickFeaturesResource","queryParameters","viewparams","concat","encodeURIComponent","queryString","entries","reduce","acc","_ref","_ref2","_layer","GeoJsonDataSource","load","clampToGround","zIndex","dataSource","_dataSource$entities","addressSearch","address","city","url","fetch","resp","json","res","geocodes","status","item","location","split","TDT","mapTool","gcj02towgs84","exports","_default","mapRef","getMapLayers","_ref3","_callee","list","promiseList","wmsFeatures","_callee$","_context","current","getAllLayers","show","labelField","CustomDataSource","options","ImageryLayer","all","isEmpty","_x","getAddressLayers","_ref4","_callee2","_getDefaultMapInfo","rootDivisionName","data","dataList","_callee2$","_context2","getDefaultMapInfo","formatted_address","lngLat","_x2","_ref5","TYPE"],"sources":["map/hooks/useGetMapFeatureInfoByText.js"],"sourcesContent":["import { getUrlParam } from '@vtx/utils';\nimport { CustomDataSource, GeoJsonDataSource, ImageryLayer } from 'cesium';\nimport { isEmpty } from 'lodash';\nimport mapTool from '../../_util/mapTool';\nimport getDefaultMapInfo from '../../_util/getDefaultMapInfo';\n\nconst handleResult = (features, field, key) => {\n return features.map(v => {\n let properties = v._properties?.getValue(v._id) || {};\n properties = properties?.properties || properties;\n properties.label = properties?.[field];\n properties.value = properties?.id || properties?.facilityId || properties?.[field];\n properties.feature = v;\n if (key) {\n v.key = key;\n }\n\n return properties;\n });\n};\n\n// 根据关键字获取图形信息\nconst getVectorFeatureInfoByText = (layer, field, searchText) => {\n let features = layer.entities?.values || [];\n if (features?.length) {\n let _features = features.filter(v => {\n let properties = v._properties?.getValue(v._id) || {};\n properties = properties?.properties || properties;\n return (properties?.[field] || '').indexOf(searchText) !== -1;\n });\n if (_features?.length) {\n return handleResult(_features, field);\n }\n }\n};\n\nconst getWmsFeatureInfoByText = (layer, field, searchText) => {\n let imageryProvider = layer?._imageryProvider || {};\n let tenantId = getUrlParam('tenantId') || localStorage.getItem('tenantId');\n let params = {\n maxFeatures: 50,\n service: 'WFS',\n request: 'GetFeature',\n version: '1.1.0',\n outputFormat: 'application/json',\n geoserverUrl: imageryProvider?._getFeatureInfoUrl,\n typeName: imageryProvider?._layers,\n cql_filter: imageryProvider._pickFeaturesResource.queryParameters.cql_filter,\n viewparams: `tenantId:${tenantId}`,\n };\n\n let cql_filter = `${field} like '%${searchText}%'`;\n\n params.cql_filter = encodeURIComponent(\n params.cql_filter ? `${params.cql_filter} and ${cql_filter}` : cql_filter,\n );\n\n const queryString = Object.entries(params)\n .reduce((acc, [key, value]) => {\n return `${acc}${key}=${value}&`;\n }, '?')\n .slice(0, -1);\n\n let _layer = GeoJsonDataSource.load(`${imageryProvider?._getFeatureInfoUrl}${queryString}`, {\n clampToGround: true,\n zIndex: 3,\n });\n\n return _layer.then(dataSource => {\n let features = [];\n if (dataSource?.entities?.values?.length) {\n features = handleResult(dataSource.entities.values, field, layer?.key);\n }\n return features;\n });\n};\n\nexport const addressSearch = (address, city = '中国') => {\n let url = `https://restapi.amap.com/v3/geocode/geo?key=2dd5476719ea3378dc06ef93b3d4aba7&city=${city}&address=${address}`;\n return fetch(url)\n .then(resp => resp.json())\n .then(res => {\n let { geocodes, info, status } = res;\n if (info === 'OK' && status === '1' && geocodes.length) {\n geocodes.map(item => {\n let { location } = item;\n if (location) {\n location = location.split(',');\n item.TDT = mapTool.gcj02towgs84(location[0] * 1, location[1] * 1);\n }\n });\n }\n return geocodes;\n });\n};\n\nexport default mapRef => {\n const getMapLayers = async searchText => {\n const list = [];\n const promiseList = [];\n mapRef.current.getAllLayers().map(layer => {\n if (layer.show && layer.key && layer.labelField) {\n let label = layer.name;\n let field = layer.labelField;\n if (layer instanceof CustomDataSource && layer.entities) {\n let features = getVectorFeatureInfoByText(layer, field || 'name', searchText);\n if (features?.length) {\n list.push({ label, options: features });\n }\n } else if (layer instanceof ImageryLayer) {\n promiseList.push(\n getWmsFeatureInfoByText(layer, field || 'code', searchText).then(\n features => {\n return {\n label,\n options: features,\n };\n },\n ),\n );\n }\n }\n });\n const wmsFeatures = (await Promise.all(promiseList)).filter(item => !isEmpty(item.options));\n return [...list, ...wmsFeatures];\n };\n const getAddressLayers = async searchText => {\n let { rootDivisionName } = getDefaultMapInfo();\n const data = await addressSearch(searchText, rootDivisionName || '中国');\n let dataList = [];\n if (data && data.length) {\n data.map(item => {\n dataList.push({\n label: item.formatted_address,\n value: item.formatted_address,\n lngLat: item.TDT,\n // options: item.TDT,\n });\n });\n }\n return dataList;\n };\n return ({ type, searchText }) => {\n return new Promise(resolve => {\n const TYPE = {\n address: getAddressLayers,\n layer: getMapLayers,\n };\n TYPE[type](searchText).then(data => {\n resolve(data);\n });\n });\n };\n};\n"],"mappings":"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"}
package/lib/map/index.js CHANGED
@@ -18,8 +18,11 @@ var _classnames = _interopRequireDefault(require("classnames"));
18
18
  var _events = require("../events");
19
19
  var _Popup = _interopRequireDefault(require("./Popup"));
20
20
  var _Provider = _interopRequireDefault(require("../_util/Provider"));
21
- var _excluded = ["center", "dark", "zoom", "createdMap", "style", "tk"],
22
- _excluded2 = ["lng", "lat", "z"];
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
- children = props.children;
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,10 +190,14 @@ 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
202
  // 展示提示
136
203
  map.showTip = function (content) {
@@ -144,25 +211,75 @@ function Map(props) {
144
211
 
145
212
  // 查找所有dataSource和imagery图层
146
213
  map.getAllLayers = function () {
147
- var _map$dataSources, _map$imageryLayers;
214
+ var _map$dataSources, _map$imageryLayers, _map$scene;
148
215
  var dataSources = (map === null || map === void 0 || (_map$dataSources = map.dataSources) === null || _map$dataSources === void 0 ? void 0 : _map$dataSources._dataSources) || [];
149
216
  var imageryLayers = (map === null || map === void 0 || (_map$imageryLayers = map.imageryLayers) === null || _map$imageryLayers === void 0 ? void 0 : _map$imageryLayers._layers) || [];
150
- return [].concat(_toConsumableArray(dataSources), _toConsumableArray(imageryLayers));
217
+ 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) || [];
218
+ return [].concat(_toConsumableArray(dataSources), _toConsumableArray(imageryLayers), _toConsumableArray(primitives));
151
219
  };
152
220
 
153
221
  // 添加dataSource和imagery图层
222
+ map.layers = [];
223
+
224
+ // 图层改变
225
+ map.layersChange = function () {
226
+ map.eventEmitter.emit('layersChange', map.layers);
227
+ onEvents.layersChange && onEvents.layersChange(map.layers);
228
+ };
229
+
230
+ // 添加图层
154
231
  map.addLayer = function (layer) {
232
+ // 挂载获取地图的方法
233
+ layer.getMap = function () {
234
+ return map;
235
+ };
155
236
  if (layer instanceof _cesium.CustomDataSource) {
156
237
  map.dataSources.add(layer);
157
238
  } else if (layer instanceof _ImageLayer["default"]) {
158
239
  map.scene.imageryLayers.add(layer);
159
240
  }
241
+
242
+ // 图层是否含有name字段,作为加入到图层树的判断依据
243
+ if (layer.name) {
244
+ map.layers.push(layer);
245
+ onEvents.addLayer && onEvents.addLayer(layer);
246
+ map.layersChange();
247
+ }
248
+ };
249
+
250
+ // 移除图层
251
+ map.removeLayer = function (layer) {
252
+ if (layer instanceof _cesium.CustomDataSource) {
253
+ map.dataSources.remove(layer);
254
+ } else if (layer instanceof _ImageLayer["default"]) {
255
+ map.scene.imageryLayers.remove(layer);
256
+ }
257
+ map.layers = map.layers.filter(function (v) {
258
+ return v !== layer;
259
+ });
260
+ onEvents.removeLayer && onEvents.removeLayer(layer);
261
+ map.layersChange();
262
+ };
263
+
264
+ // 清除图层和entity
265
+ map.clearLayers = function () {
266
+ var imageryLayers = map.getImageryLayers() || [];
267
+ map.dataSources.removeAll();
268
+ imageryLayers.map(function (layer) {
269
+ if (layer !== null && layer !== void 0 && layer.key) {
270
+ map.imageryLayers.remove(layer);
271
+ }
272
+ });
273
+ map.entities.removeAll();
274
+ map.layers = [];
275
+ onEvents.clearLayer && onEvents.clearLayer();
276
+ map.layersChange();
160
277
  };
161
278
 
162
279
  // 根据key查找imageryLayers图层
163
280
  map.getImageryLayers = function (keys) {
164
281
  var _map$imageryLayers2;
165
- var imageryLayers = ((map === null || map === void 0 || (_map$imageryLayers2 = map.imageryLayers) === null || _map$imageryLayers2 === void 0 ? void 0 : _map$imageryLayers2._layers) || []).filter(function (layer) {
282
+ return ((map === null || map === void 0 || (_map$imageryLayers2 = map.imageryLayers) === null || _map$imageryLayers2 === void 0 ? void 0 : _map$imageryLayers2._layers) || []).filter(function (layer) {
166
283
  if (typeof keys === 'string') {
167
284
  return layer.key === keys;
168
285
  } else if (Array.isArray(keys)) {
@@ -171,7 +288,6 @@ function Map(props) {
171
288
  return layer;
172
289
  }
173
290
  });
174
- return imageryLayers;
175
291
  };
176
292
 
177
293
  // 通过图形查询所属图层
@@ -182,6 +298,11 @@ function Map(props) {
182
298
  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
299
  return layer;
184
300
  }
301
+ } else if (layer instanceof _cesium.Primitive) {
302
+ var _entity$primitive;
303
+ 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)) {
304
+ return layer;
305
+ }
185
306
  } else {
186
307
  if (layer !== null && layer !== void 0 && layer.key && layer.key === (entity === null || entity === void 0 ? void 0 : entity.key)) {
187
308
  return layer;
@@ -193,6 +314,11 @@ function Map(props) {
193
314
  // 获取entity中数据
194
315
  map.getProperties = function (feature) {
195
316
  var _feature$_properties, _properties;
317
+ if (feature !== null && feature !== void 0 && feature.primitive && (feature === null || feature === void 0 ? void 0 : feature.primitive) instanceof _cesium.Primitive) {
318
+ return feature.primitive.data.find(function (item) {
319
+ return item.id === feature.id;
320
+ });
321
+ }
196
322
  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
323
  properties = ((_properties = properties) === null || _properties === void 0 ? void 0 : _properties.properties) || properties;
198
324
  return properties;
@@ -205,10 +331,24 @@ function Map(props) {
205
331
  });
206
332
  };
207
333
 
334
+ // 通过keys查询多个图层
335
+ map.getLayerByKeys = function (keys) {
336
+ return map.getAllLayers().filter(function (layer) {
337
+ return layer.key && keys.includes(layer.key);
338
+ });
339
+ };
340
+
341
+ // 通过返回值控制是否执行关闭
342
+ map.onCloseTemplateBefore = function (feature) {
343
+ if (onCloseTemplateBefore) {
344
+ return onCloseTemplateBefore(feature);
345
+ }
346
+ };
347
+
208
348
  // 根据key查找展示的图层
209
349
  map.getVisibleLayersByKeys = function (keys) {
210
350
  var layers = map.getAllLayers() || [];
211
- var _layers = layers.filter(function (layer) {
351
+ return layers.filter(function (layer) {
212
352
  if (typeof keys === 'string') {
213
353
  return layer.key === keys && layer.show;
214
354
  } else if (Array.isArray(keys)) {
@@ -217,19 +357,6 @@ function Map(props) {
217
357
  return layer.show && layer.key;
218
358
  }
219
359
  });
220
- return _layers;
221
- };
222
-
223
- // 清除图层和entity
224
- map.clearLayers = function () {
225
- var imageryLayers = map.getImageryLayers() || [];
226
- map.dataSources.removeAll();
227
- imageryLayers.map(function (layer) {
228
- if (layer !== null && layer !== void 0 && layer.key) {
229
- map.imageryLayers.remove(layer);
230
- }
231
- });
232
- map.entities.removeAll();
233
360
  };
234
361
 
235
362
  // 展示看板
@@ -248,9 +375,13 @@ function Map(props) {
248
375
  if (event !== null && event !== void 0 && event.position) {
249
376
  var position = event.position;
250
377
  var pick = map.scene.pick(position);
251
- return pick && pick.id;
378
+ if (_lodash["default"].isString(pick === null || pick === void 0 ? void 0 : pick.id)) {
379
+ return pick;
380
+ }
381
+ return pick === null || pick === void 0 ? void 0 : pick.id;
252
382
  }
253
383
  };
384
+ map.getMapFeatureInfoByText = getMapFeatureInfoByText;
254
385
 
255
386
  // 获取wms的图形数据
256
387
  map.pickImageryLayerFeatures = function (event) {
@@ -266,6 +397,7 @@ function Map(props) {
266
397
  function registerMapEvent(e, event) {
267
398
  if (map[event]) {
268
399
  map[event](e);
400
+ onEvents[event] && onEvents[event](e);
269
401
  }
270
402
  }
271
403
  function registerEvent(feature, event) {
@@ -314,7 +446,7 @@ function Map(props) {
314
446
  var hoverFeature;
315
447
  var getUid = function getUid(feature) {
316
448
  if (!feature._id) {
317
- feature._id = _cesium.Math.random();
449
+ feature._id = window.Math.random();
318
450
  }
319
451
  return feature._id;
320
452
  };
@@ -349,25 +481,53 @@ function Map(props) {
349
481
  hoverFeature = null;
350
482
  }
351
483
  }, _cesium.ScreenSpaceEventType.MOUSE_MOVE);
484
+ if (onZoom) {
485
+ map.camera.moveEnd.addEventListener(function () {
486
+ var viewRectangle = map.camera.computeViewRectangle();
487
+ var west = viewRectangle.west / _cesium.Math.PI * 180; // 左上方(西)
488
+ var north = viewRectangle.north / _cesium.Math.PI * 180; //右上方(北)
489
+ var east = viewRectangle.east / _cesium.Math.PI * 180; // 右下方(东)
490
+ var south = viewRectangle.south / _cesium.Math.PI * 180; // 左下方(南)
491
+ var cameraHeight = map.camera.positionCartographic.height;
492
+ onZoom && onZoom({
493
+ west: west,
494
+ north: north,
495
+ east: east,
496
+ south: south,
497
+ cameraHeight: cameraHeight
498
+ });
499
+ });
500
+ }
352
501
 
353
- // 获取entity中数据
354
- map.getProperties = function (feature) {
355
- var _feature$_properties2, _properties2;
356
- var properties = (feature === null || feature === void 0 || (_feature$_properties2 = feature._properties) === null || _feature$_properties2 === void 0 ? void 0 : _feature$_properties2.getValue(feature._id)) || (feature === null || feature === void 0 ? void 0 : feature.properties) || {};
357
- properties = ((_properties2 = properties) === null || _properties2 === void 0 ? void 0 : _properties2.properties) || properties;
358
- return properties;
359
- };
502
+ // 动态调整视角,不传参数为默认视角,参数可以是图层、图形、数据等
360
503
  map.fitView = function (e) {
361
504
  var _ref = e || {},
362
505
  entity = _ref.entity,
363
- isZoom = _ref.isZoom,
506
+ lng = _ref.lng,
507
+ lat = _ref.lat,
364
508
  _ref$height = _ref.height,
365
- height = _ref$height === void 0 ? 50000 : _ref$height;
509
+ height = _ref$height === void 0 ? 50000 : _ref$height,
510
+ rest = _objectWithoutProperties(_ref, _excluded2);
511
+ var pitch = map.camera.pitch;
366
512
  // 判断是否点击了图形
367
513
  if (entity) {
368
- map.camera.flyTo(entity, {
369
- duration: 2
514
+ map.flyTo(entity, {
515
+ duration: 2,
516
+ offset: {
517
+ heading: _cesium.Math.toRadians(0.0),
518
+ pitch: pitch,
519
+ range: height
520
+ }
370
521
  });
522
+ } else if (lng && lat) {
523
+ map.camera.flyTo(_objectSpread({
524
+ destination: new _cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), height),
525
+ orientation: {
526
+ pitch: _cesium.Math.toRadians(-88.0),
527
+ roll: 0.0
528
+ },
529
+ duration: 2
530
+ }, rest));
371
531
  } else {
372
532
  var _viewDefault$center = _slicedToArray(viewDefault.center, 3),
373
533
  x = _viewDefault$center[0],
@@ -384,26 +544,9 @@ function Map(props) {
384
544
  });
385
545
  }
386
546
  };
387
- map.flyTo = function (e) {
388
- var _ref2 = e || {},
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
- };
405
547
  map.fitView();
406
548
  createdMap && createdMap(map);
549
+ onEvents.createdMap && onEvents.createdMap(map);
407
550
  setMapLoaded(true);
408
551
  };
409
552
  var onMouseMove = function onMouseMove(event) {
@@ -432,13 +575,14 @@ function Map(props) {
432
575
  }, tip && tipVis && /*#__PURE__*/_react["default"].createElement("div", {
433
576
  ref: tipRef,
434
577
  className: (0, _classnames["default"])('custom-tip')
435
- }, tip)), mapLoaded && /*#__PURE__*/_react["default"].createElement(_Provider["default"], {
578
+ }, tip), mapRef.current && /*#__PURE__*/_react["default"].createElement(_Popup["default"], {
579
+ ref: popupRef,
580
+ map: mapRef.current
581
+ })), mapLoaded && /*#__PURE__*/_react["default"].createElement(_Provider["default"], {
436
582
  value: {
437
583
  map: mapRef.current
438
584
  }
439
- }, mapRef.current && /*#__PURE__*/_react["default"].createElement(_Popup["default"], {
440
- ref: popupRef
441
- }), children));
585
+ }, children));
442
586
  }
443
587
  var _default = Map;
444
588
  exports["default"] = _default;
@@ -446,12 +590,15 @@ Map.propTypes = {
446
590
  width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
447
591
  height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
448
592
  createdMap: _propTypes["default"].func,
593
+ onCloseTemplateBefore: _propTypes["default"].func,
594
+ onZoom: _propTypes["default"].func,
449
595
  center: _propTypes["default"].array,
450
596
  zoom: _propTypes["default"].number,
451
597
  minZoom: _propTypes["default"].number,
452
598
  maxZoom: _propTypes["default"].number,
453
599
  dark: _propTypes["default"].bool,
454
- style: _propTypes["default"].oneOfType(['vec', 'img']),
455
- tk: _propTypes["default"].string.isRequired
600
+ mapStyle: _propTypes["default"].oneOfType(['vec', 'img']),
601
+ tk: _propTypes["default"].string.isRequired,
602
+ onEvents: _propTypes["default"].object
456
603
  };
457
604
  //# sourceMappingURL=index.js.map