xy-map 1.1.36 → 1.1.37

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/xy-map.umd.js CHANGED
@@ -297,7 +297,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".upload[data-v-57aca7b6]{position:rela
297
297
 
298
298
  /***/ }),
299
299
 
300
- /***/ 769:
300
+ /***/ 1235:
301
301
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
302
302
 
303
303
  "use strict";
@@ -311,7 +311,7 @@ __webpack_require__.r(__webpack_exports__);
311
311
 
312
312
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
313
313
  // Module
314
- ___CSS_LOADER_EXPORT___.push([module.id, ".upload[data-v-3bd5e448]{position:relative}.upload input[data-v-3bd5e448]{position:absolute;width:100%;height:100%;left:0;top:0;opacity:0}", ""]);
314
+ ___CSS_LOADER_EXPORT___.push([module.id, ".upload[data-v-3b26555c]{position:relative}.upload input[data-v-3b26555c]{position:absolute;width:100%;height:100%;left:0;top:0;opacity:0}", ""]);
315
315
  // Exports
316
316
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
317
317
 
@@ -42970,19 +42970,19 @@ var update = add("2348509c", content, true, {"sourceMap":false,"shadowMode":fals
42970
42970
 
42971
42971
  /***/ }),
42972
42972
 
42973
- /***/ 5872:
42973
+ /***/ 3740:
42974
42974
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
42975
42975
 
42976
42976
  // style-loader: Adds some css to the DOM by adding a <style> tag
42977
42977
 
42978
42978
  // load the styles
42979
- var content = __webpack_require__(769);
42979
+ var content = __webpack_require__(1235);
42980
42980
  if(content.__esModule) content = content.default;
42981
42981
  if(typeof content === 'string') content = [[module.id, content, '']];
42982
42982
  if(content.locals) module.exports = content.locals;
42983
42983
  // add the styles to the DOM
42984
42984
  var add = (__webpack_require__(208)/* ["default"] */ .Z)
42985
- var update = add("57b83b1f", content, true, {"sourceMap":false,"shadowMode":false});
42985
+ var update = add("dfa8ba9e", content, true, {"sourceMap":false,"shadowMode":false});
42986
42986
 
42987
42987
  /***/ }),
42988
42988
 
@@ -43715,6 +43715,24 @@ __webpack_require__.d(__webpack_exports__, {
43715
43715
  "shpFile": function() { return /* reexport */ shpFile; }
43716
43716
  });
43717
43717
 
43718
+ // NAMESPACE OBJECT: ./src/package/util/mapTools.js
43719
+ var mapTools_namespaceObject = {};
43720
+ __webpack_require__.r(mapTools_namespaceObject);
43721
+ __webpack_require__.d(mapTools_namespaceObject, {
43722
+ "YK": function() { return clearDraw; },
43723
+ "TE": function() { return mapTools_distance; },
43724
+ "N5": function() { return drawArea; },
43725
+ "tL": function() { return geometryCollectionToFeatureCollection; },
43726
+ "yQ": function() { return getElevation; },
43727
+ "yJ": function() { return lineCenter; },
43728
+ "po": function() { return loadImage; },
43729
+ "bZ": function() { return pointToGeoJson; },
43730
+ "j_": function() { return polygonCenter; },
43731
+ "Do": function() { return ranging; },
43732
+ "b4": function() { return spArray; },
43733
+ "rg": function() { return toGeoJson; }
43734
+ });
43735
+
43718
43736
  // NAMESPACE OBJECT: ./node_modules/@loaders.gl/gltf/dist/esm/lib/extensions/EXT_meshopt_compression.js
43719
43737
  var EXT_meshopt_compression_namespaceObject = {};
43720
43738
  __webpack_require__.r(EXT_meshopt_compression_namespaceObject);
@@ -43847,6 +43865,127 @@ var style_map = __webpack_require__(4321);
43847
43865
  // EXTERNAL MODULE: ./node_modules/html2canvas/dist/html2canvas.js
43848
43866
  var html2canvas = __webpack_require__(5507);
43849
43867
  var html2canvas_default = /*#__PURE__*/__webpack_require__.n(html2canvas);
43868
+ ;// CONCATENATED MODULE: ./src/package/layers/index.js
43869
+ // import mapBoxGl from 'mapbox-gl'
43870
+
43871
+
43872
+ // 更新数据
43873
+ const setSource = (id, data) => {
43874
+ let {
43875
+ map
43876
+ } = package_map;
43877
+ let hasSource = map.getSource(id);
43878
+ if (hasSource) {
43879
+ map.getSource(id).setData(data);
43880
+ }
43881
+ };
43882
+ // 判断图层是否存在
43883
+ const hasLayer = id => {
43884
+ let {
43885
+ map
43886
+ } = package_map;
43887
+ return map.getLayer(id);
43888
+ };
43889
+
43890
+ // 判断数据是否存在
43891
+ const hasSource = id => {
43892
+ let {
43893
+ map
43894
+ } = package_map;
43895
+ return map.getSource(id);
43896
+ };
43897
+
43898
+ // 删除图层
43899
+ const removeLayer = id => {
43900
+ let {
43901
+ map
43902
+ } = package_map;
43903
+ map.removeLayer(id);
43904
+ let arr = getLayerAll();
43905
+ let layers = arr.filter(item => item.id.includes(id + '-'));
43906
+ layers.forEach(item => {
43907
+ if (hasLayer(item.id)) {
43908
+ map.removeLayer(item.id);
43909
+ }
43910
+ });
43911
+ };
43912
+
43913
+ /**
43914
+ * 获取所有图层
43915
+ */
43916
+ const getLayerAll = () => {
43917
+ let {
43918
+ map
43919
+ } = package_map;
43920
+ let data = map.getStyle().layers;
43921
+ // console.log(data)
43922
+ return data;
43923
+ };
43924
+
43925
+ // 显示隐藏图层
43926
+ const showLayer = (id, show = false) => {
43927
+ let {
43928
+ map
43929
+ } = package_map;
43930
+ show = show ? 'visible' : 'none';
43931
+ map.setLayoutProperty(id, 'visibility', show);
43932
+ let arr = getLayerAll();
43933
+ let layers = arr.filter(item => item.id.includes(id + '-'));
43934
+ layers.forEach(item => {
43935
+ if (hasLayer(item.id)) {
43936
+ map.setLayoutProperty(item.id, 'visibility', show);
43937
+ }
43938
+ });
43939
+ };
43940
+
43941
+ // 显隐文字
43942
+ const showLayerText = (show, id = '') => {
43943
+ let {
43944
+ map
43945
+ } = package_map;
43946
+ if (id) {
43947
+ setPaint(id, 'text-opacity', show ? 1 : 0);
43948
+ } else {
43949
+ let textLayer = map.getStyle().layers;
43950
+ textLayer.forEach(layer => {
43951
+ if (layer.type === 'symbol') {
43952
+ setPaint(layer.id, 'text-opacity', show ? 1 : 0);
43953
+ }
43954
+ });
43955
+ }
43956
+ };
43957
+
43958
+ // 修改Layout
43959
+ const setLayout = (id, key, value) => {
43960
+ let {
43961
+ map
43962
+ } = package_map;
43963
+ map.setLayoutProperty(id, key, value);
43964
+ };
43965
+
43966
+ // 修改Paint
43967
+ const setPaint = (id, key, value) => {
43968
+ let {
43969
+ map
43970
+ } = package_map;
43971
+ map.setPaintProperty(id, key, value);
43972
+ };
43973
+
43974
+ // 修改Filter
43975
+ const setFilter = (key, filter) => {
43976
+ let {
43977
+ map
43978
+ } = package_map;
43979
+ map.setFilter(key, filter);
43980
+ };
43981
+
43982
+ // 设置高亮
43983
+ const setHigh = (id, filter) => {
43984
+ let {
43985
+ map
43986
+ } = package_map;
43987
+ map.setFilter(id + '-high', filter);
43988
+ };
43850
43989
  ;// CONCATENATED MODULE: ./src/package/map.js
43851
43990
  // 天地图token
43852
43991
  const tdtToken = (/* unused pure expression or super */ null && (['150bad890e9d004885a4b2a94062a46e', '337996a733e1ea41cd73124f67f4795d', '48282c15cce091a1154a674512372eec', 'f3c2ca3a170f5712abd7b6858e038f18']));
@@ -43926,6 +44065,7 @@ var defaultOptions = {
43926
44065
 
43927
44066
 
43928
44067
 
44068
+
43929
44069
  // import { Message } from 'element-ui'
43930
44070
 
43931
44071
  var popup = null;
@@ -44067,6 +44207,7 @@ class mapSdk {
44067
44207
  'star-intensity': 0.1
44068
44208
  });
44069
44209
  } else {
44210
+ if (hasLayer('sky')) return;
44070
44211
  // 天空
44071
44212
  map.addLayer({
44072
44213
  'id': 'sky',
@@ -44376,127 +44517,6 @@ class mapSdk {
44376
44517
  }
44377
44518
  }
44378
44519
  /* harmony default export */ var package_map = (new mapSdk());
44379
- ;// CONCATENATED MODULE: ./src/package/layers/index.js
44380
- // import mapBoxGl from 'mapbox-gl'
44381
-
44382
-
44383
- // 更新数据
44384
- const setSource = (id, data) => {
44385
- let {
44386
- map
44387
- } = package_map;
44388
- let hasSource = map.getSource(id);
44389
- if (hasSource) {
44390
- map.getSource(id).setData(data);
44391
- }
44392
- };
44393
- // 判断图层是否存在
44394
- const hasLayer = id => {
44395
- let {
44396
- map
44397
- } = package_map;
44398
- return map.getLayer(id);
44399
- };
44400
-
44401
- // 判断数据是否存在
44402
- const hasSource = id => {
44403
- let {
44404
- map
44405
- } = package_map;
44406
- return map.getSource(id);
44407
- };
44408
-
44409
- // 删除图层
44410
- const removeLayer = id => {
44411
- let {
44412
- map
44413
- } = package_map;
44414
- map.removeLayer(id);
44415
- let arr = getLayerAll();
44416
- let layers = arr.filter(item => item.id.includes(id + '-'));
44417
- layers.forEach(item => {
44418
- if (hasLayer(item.id)) {
44419
- map.removeLayer(item.id);
44420
- }
44421
- });
44422
- };
44423
-
44424
- /**
44425
- * 获取所有图层
44426
- */
44427
- const getLayerAll = () => {
44428
- let {
44429
- map
44430
- } = package_map;
44431
- let data = map.getStyle().layers;
44432
- // console.log(data)
44433
- return data;
44434
- };
44435
-
44436
- // 显示隐藏图层
44437
- const showLayer = (id, show = false) => {
44438
- let {
44439
- map
44440
- } = package_map;
44441
- show = show ? 'visible' : 'none';
44442
- map.setLayoutProperty(id, 'visibility', show);
44443
- let arr = getLayerAll();
44444
- let layers = arr.filter(item => item.id.includes(id + '-'));
44445
- layers.forEach(item => {
44446
- if (hasLayer(item.id)) {
44447
- map.setLayoutProperty(item.id, 'visibility', show);
44448
- }
44449
- });
44450
- };
44451
-
44452
- // 显隐文字
44453
- const showLayerText = (show, id = '') => {
44454
- let {
44455
- map
44456
- } = package_map;
44457
- if (id) {
44458
- setPaint(id, 'text-opacity', show ? 1 : 0);
44459
- } else {
44460
- let textLayer = map.getStyle().layers;
44461
- textLayer.forEach(layer => {
44462
- if (layer.type === 'symbol') {
44463
- setPaint(layer.id, 'text-opacity', show ? 1 : 0);
44464
- }
44465
- });
44466
- }
44467
- };
44468
-
44469
- // 修改Layout
44470
- const setLayout = (id, key, value) => {
44471
- let {
44472
- map
44473
- } = package_map;
44474
- map.setLayoutProperty(id, key, value);
44475
- };
44476
-
44477
- // 修改Paint
44478
- const setPaint = (id, key, value) => {
44479
- let {
44480
- map
44481
- } = package_map;
44482
- map.setPaintProperty(id, key, value);
44483
- };
44484
-
44485
- // 修改Filter
44486
- const setFilter = (key, filter) => {
44487
- let {
44488
- map
44489
- } = package_map;
44490
- map.setFilter(key, filter);
44491
- };
44492
-
44493
- // 设置高亮
44494
- const setHigh = (id, filter) => {
44495
- let {
44496
- map
44497
- } = package_map;
44498
- map.setFilter(id + '-high', filter);
44499
- };
44500
44520
  ;// CONCATENATED MODULE: ./src/package/layers/Text.js
44501
44521
 
44502
44522
 
@@ -66821,8 +66841,8 @@ const Line_defaultOptions = {
66821
66841
  click: null
66822
66842
  };
66823
66843
 
66824
- /**
66825
- * 添加线图层
66844
+ /**
66845
+ * 添加线图层
66826
66846
  */
66827
66847
  const addLayerLine = (option, layerId) => {
66828
66848
  let {
@@ -66891,9 +66911,9 @@ const addLayerLine = (option, layerId) => {
66891
66911
  }
66892
66912
  };
66893
66913
 
66894
- /**
66895
- * 添加动画线图层
66896
- * addLayerLine配置图层
66914
+ /**
66915
+ * 添加动画线图层
66916
+ * addLayerLine配置图层
66897
66917
  */
66898
66918
  const addLayerLineAnimation = (option, layerId) => {
66899
66919
  let {
@@ -69784,9 +69804,9 @@ let after = null;
69784
69804
  let textColor = '#fff';
69785
69805
  let lineColor = '#f00';
69786
69806
 
69787
- /**
69788
- * 测距
69789
- * @param mapObject
69807
+ /**
69808
+ * 测距
69809
+ * @param mapObject
69790
69810
  */
69791
69811
  function measureLineLength(mapObject) {
69792
69812
  const currentMapContainerId = mapObject._container.getAttribute('id');
@@ -69904,9 +69924,9 @@ function measureLineLength(mapObject) {
69904
69924
  deleteTips.remove();
69905
69925
  }
69906
69926
  });
69907
- /**
69908
- * 点击测距点位触发
69909
- * @param event
69927
+ /**
69928
+ * 点击测距点位触发
69929
+ * @param event
69910
69930
  * */
69911
69931
  // eslint-disable-next-line no-undef,no-inner-declarations
69912
69932
  function clickMeasurePointsHandler(event) {
@@ -69990,8 +70010,8 @@ function measureLineLength(mapObject) {
69990
70010
  resultData.map.on('dblclick', dblclickHandler);
69991
70011
  }
69992
70012
 
69993
- /**
69994
- * 清除测距相关
70013
+ /**
70014
+ * 清除测距相关
69995
70015
  */
69996
70016
  function clearMeasureLine(mapObject) {
69997
70017
  const resultData = getBeforeOrAfterDataByMapContainerIdHandler(mapObject);
@@ -70013,9 +70033,9 @@ function clearMeasureLine(mapObject) {
70013
70033
  }
70014
70034
  }
70015
70035
 
70016
- /**
70017
- * 创建label marker
70018
- * @returns {*} 返回marker对象
70036
+ /**
70037
+ * 创建label marker
70038
+ * @returns {*} 返回marker对象
70019
70039
  */
70020
70040
  function createMeasurLineLabelMarkerHandler(mapObject) {
70021
70041
  const resultData = getBeforeOrAfterDataByMapContainerIdHandler(mapObject);
@@ -70038,11 +70058,11 @@ function createMeasurLineLabelMarkerHandler(mapObject) {
70038
70058
  };
70039
70059
  }
70040
70060
 
70041
- /**
70042
- * 创建测距需要的layers,points、line、measure-line-move
70043
- * @param jsonPoint
70044
- * @param jsonLine
70045
- * @param mapObject
70061
+ /**
70062
+ * 创建测距需要的layers,points、line、measure-line-move
70063
+ * @param jsonPoint
70064
+ * @param jsonLine
70065
+ * @param mapObject
70046
70066
  */
70047
70067
  function createMeasureLinePLLHandler(jsonPoint, jsonLine, mapObject) {
70048
70068
  const resultData = getBeforeOrAfterDataByMapContainerIdHandler(mapObject);
@@ -70103,8 +70123,8 @@ function createMeasureLinePLLHandler(jsonPoint, jsonLine, mapObject) {
70103
70123
  moveLayerHandler(resultData.map);
70104
70124
  }
70105
70125
 
70106
- /**
70107
- * 将测距的三个图层移到最上层级
70126
+ /**
70127
+ * 将测距的三个图层移到最上层级
70108
70128
  */
70109
70129
  function moveLayerHandler(mapObject) {
70110
70130
  const {
@@ -70122,12 +70142,12 @@ function moveLayerHandler(mapObject) {
70122
70142
  }
70123
70143
  }
70124
70144
 
70125
- /**
70126
- * 添加点位layer
70127
- * @param jsonPoint
70128
- * @param jsonLine
70129
- * @param coords
70130
- * @param mapObject
70145
+ /**
70146
+ * 添加点位layer
70147
+ * @param jsonPoint
70148
+ * @param jsonLine
70149
+ * @param coords
70150
+ * @param mapObject
70131
70151
  */
70132
70152
  function addMeasureLinePoint(jsonPoint, jsonLine, coords, mapObject) {
70133
70153
  const {
@@ -70170,11 +70190,11 @@ function addMeasureLinePoint(jsonPoint, jsonLine, coords, mapObject) {
70170
70190
  map.getSource('measure-line-points').setData(jsonPoint);
70171
70191
  }
70172
70192
 
70173
- /**
70174
- * 获取两坐标点之间的距离
70175
- * @param points
70176
- * @param coords
70177
- * @returns {string}
70193
+ /**
70194
+ * 获取两坐标点之间的距离
70195
+ * @param points
70196
+ * @param coords
70197
+ * @returns {string}
70178
70198
  */
70179
70199
  function getMeasureLineLength(points, coords) {
70180
70200
  const _points = points.concat([coords]);
@@ -70190,12 +70210,12 @@ function getMeasureLineLength(points, coords) {
70190
70210
  return len;
70191
70211
  }
70192
70212
 
70193
- /**
70194
- * 点击地图添加点位触发给当前点位绑定测距结果的labelMarker
70195
- * @param points
70196
- * @param jsonPoint
70197
- * @param coords
70198
- * @param mapObject
70213
+ /**
70214
+ * 点击地图添加点位触发给当前点位绑定测距结果的labelMarker
70215
+ * @param points
70216
+ * @param jsonPoint
70217
+ * @param coords
70218
+ * @param mapObject
70199
70219
  * */
70200
70220
  function addMeasureLineRes(points, jsonPoint, coords, mapObject) {
70201
70221
  const {
@@ -70223,11 +70243,11 @@ function addMeasureLineRes(points, jsonPoint, coords, mapObject) {
70223
70243
  new (mapbox_gl_default()).Marker(option).setLngLat(coords).addTo(map);
70224
70244
  }
70225
70245
 
70226
- /**
70227
- * 点击测距点位重新触发计算两点位之间的距离
70228
- * @param resultPoints
70229
- * @param coords
70230
- * @returns {string}
70246
+ /**
70247
+ * 点击测距点位重新触发计算两点位之间的距离
70248
+ * @param resultPoints
70249
+ * @param coords
70250
+ * @returns {string}
70231
70251
  */
70232
70252
  function getMetersHandler(resultPoints, coords) {
70233
70253
  if (resultPoints.length > 1) {
@@ -70245,13 +70265,13 @@ function getMetersHandler(resultPoints, coords) {
70245
70265
  }
70246
70266
  }
70247
70267
 
70248
- /**
70249
- * 获取两点位之间的角度
70250
- * @param lng1
70251
- * @param lat1
70252
- * @param lng2
70253
- * @param lat2
70254
- * @returns {number}
70268
+ /**
70269
+ * 获取两点位之间的角度
70270
+ * @param lng1
70271
+ * @param lat1
70272
+ * @param lng2
70273
+ * @param lat2
70274
+ * @returns {number}
70255
70275
  */
70256
70276
  function getAngleHandle(lng1, lat1, lng2, lat2) {
70257
70277
  const a = (90 - lat2) * Math.PI / 180;
@@ -70282,11 +70302,11 @@ function getAngleHandle(lng1, lat1, lng2, lat2) {
70282
70302
  return res;
70283
70303
  }
70284
70304
 
70285
- /**
70286
- * 创建关闭按钮
70287
- * @param clickMeasurePointsHandler
70288
- * @param coords
70289
- * @param mapObject
70305
+ /**
70306
+ * 创建关闭按钮
70307
+ * @param clickMeasurePointsHandler
70308
+ * @param coords
70309
+ * @param mapObject
70290
70310
  */
70291
70311
  function createCloseMarkerHandler(clickMeasurePointsHandler, coords, mapObject) {
70292
70312
  const resultData = getBeforeOrAfterDataByMapContainerIdHandler(mapObject);
@@ -70309,8 +70329,8 @@ function createCloseMarkerHandler(clickMeasurePointsHandler, coords, mapObject)
70309
70329
  };
70310
70330
  }
70311
70331
 
70312
- /**
70313
- * 关闭触发
70332
+ /**
70333
+ * 关闭触发
70314
70334
  */
70315
70335
  function closeMeasureLine(mapObject) {
70316
70336
  if (!mapObject) return;
@@ -70603,20 +70623,19 @@ const pointToGeoJson = (position = [0, 0]) => {
70603
70623
  return data;
70604
70624
  };
70605
70625
 
70606
- // arcGis坐标转geoJson
70607
- const arcGisToGeoJson = Json => {
70608
- let data = {
70609
- type: 'FeatureCollection',
70610
- features: []
70611
- };
70612
- Json.geometries.forEach(item => {
70613
- data.features.push({
70614
- type: 'Feature',
70615
- geometry: item,
70616
- properties: {}
70617
- });
70626
+ // geoJson 格式 GeometryCollection 转 FeatureCollection
70627
+ const geometryCollectionToFeatureCollection = geometryCollection => {
70628
+ const features = [];
70629
+
70630
+ // 遍历 GeometryCollection 中的每个几何对象
70631
+ geometryCollection.geometries.forEach(geometry => {
70632
+ const feature = es_feature(geometry);
70633
+ features.push(feature);
70618
70634
  });
70619
- return data;
70635
+
70636
+ // 创建 FeatureCollection
70637
+ const featureCollection = es_featureCollection(features);
70638
+ return featureCollection;
70620
70639
  };
70621
70640
 
70622
70641
  // 3857墨卡托坐标系转换为4326 (WGS84)经纬度坐标
@@ -71284,8 +71303,8 @@ const Polygon_defaultOptions = {
71284
71303
  click: null
71285
71304
  };
71286
71305
 
71287
- /**
71288
- * 添加面图层
71306
+ /**
71307
+ * 添加面图层
71289
71308
  */
71290
71309
  const addLayerPolygon = (option, layerId) => {
71291
71310
  let {
@@ -71387,8 +71406,8 @@ const circle_defaultOptions = {
71387
71406
  click: null
71388
71407
  };
71389
71408
 
71390
- /**
71391
- * 添加面图层
71409
+ /**
71410
+ * 添加面图层
71392
71411
  */
71393
71412
  const addLayerCircle = (option, layerId) => {
71394
71413
  let {
@@ -71518,8 +71537,8 @@ const circleAnimate_defaultOptions = {
71518
71537
  click: null
71519
71538
  };
71520
71539
 
71521
- /**
71522
- * 添加圆图层
71540
+ /**
71541
+ * 添加圆图层
71523
71542
  */
71524
71543
  const addCircleAnimate = (option, layerId) => {
71525
71544
  let {
@@ -77331,6 +77350,168 @@ const addLayerModel = (option, layerId = '') => {
77331
77350
  }
77332
77351
  });
77333
77352
  };
77353
+ ;// CONCATENATED MODULE: ./src/package/layers/pipe.js
77354
+
77355
+
77356
+
77357
+
77358
+
77359
+
77360
+
77361
+
77362
+
77363
+
77364
+ const pipe_defaultOptions = {
77365
+ id: 'pipe',
77366
+ position: [103.353557, 23.362395],
77367
+ // 位置
77368
+ hight: 0,
77369
+ // 高度
77370
+ edit: false
77371
+ };
77372
+
77373
+ /**
77374
+ * 添加管道
77375
+ */
77376
+ const addLayerPipe = (option, layerId = '') => {
77377
+ return new Promise(resolve => {
77378
+ let {
77379
+ map
77380
+ } = package_map;
77381
+ let opt = Object.assign({}, pipe_defaultOptions, option);
77382
+ let camera = '';
77383
+ let scene = '';
77384
+ let group = '';
77385
+ let renderer = '';
77386
+ let customLayer = '';
77387
+ let pipeMesh = '';
77388
+ if (hasLayer(opt.id)) {
77389
+ removeLayer(opt.id);
77390
+ }
77391
+ addPipe();
77392
+ map.addLayer(customLayer, layerId);
77393
+ resolve(group);
77394
+ function addPipe() {
77395
+ const modelOrigin = opt.position; // 中心点
77396
+ const modelAltitude = opt.elevation; // 海拔高度
77397
+ const modelRotate = [Math.PI / 2, 0, 0];
77398
+ const modelAsMercatorCoordinate = mapbox_gl_default().MercatorCoordinate.fromLngLat(modelOrigin, modelAltitude);
77399
+ const modelTransform = {
77400
+ translateX: modelAsMercatorCoordinate.x,
77401
+ translateY: modelAsMercatorCoordinate.y,
77402
+ translateZ: modelAsMercatorCoordinate.z,
77403
+ rotateX: modelRotate[0],
77404
+ rotateY: modelRotate[1],
77405
+ rotateZ: modelRotate[2],
77406
+ scale: modelAsMercatorCoordinate.meterInMercatorCoordinateUnits()
77407
+ };
77408
+
77409
+ // 根据CustomLayerInterface为三维模型配置自定义层
77410
+ customLayer = {
77411
+ id: opt.id,
77412
+ type: 'custom',
77413
+ renderingMode: '3d',
77414
+ onAdd: (map, gl) => {
77415
+ const container = map.getCanvas();
77416
+
77417
+ // 摄像机
77418
+ camera = new PerspectiveCamera(50, container.clientWidth / container.clientHeight, 1, 5000);
77419
+
77420
+ // 场景
77421
+ scene = new Scene();
77422
+ group = new Group();
77423
+ group.name = 'pipe';
77424
+ scene.add(group);
77425
+
77426
+ // 管道
77427
+ let geometry = getPipeGeometry(modelAsMercatorCoordinate, opt);
77428
+ const bottomMat = new MeshBasicMaterial({
77429
+ color: opt.color || 0x7597dc,
77430
+ side: DoubleSide,
77431
+ transparent: true,
77432
+ opacity: 0.5
77433
+ });
77434
+ pipeMesh = new Mesh(geometry, bottomMat);
77435
+ scene.position.y = opt.hight;
77436
+ group.add(pipeMesh);
77437
+ group.rotation.x = -Math.PI / 2;
77438
+
77439
+ // 渲染器
77440
+ renderer = new WebGLRenderer({
77441
+ canvas: map.getCanvas(),
77442
+ context: gl,
77443
+ logarithmicDepthBuffer: true,
77444
+ antialias: true
77445
+ });
77446
+ renderer.autoClear = false;
77447
+ renderer.physicallyCorrectLights = true;
77448
+ // renderer.outputEncoding = THREE.sRGBEncoding
77449
+ renderer.setSize(container.clientWidth, container.clientHeight);
77450
+
77451
+ // 调试工具
77452
+ const gui = opt.edit ? new GUI$1() : null;
77453
+ if (gui) {
77454
+ gui.add(group.position, 'y').step(0.1).name('高度(米)');
77455
+ gui.add(group.rotation, 'x').step(0.1).name('旋转x');
77456
+ gui.add(group.rotation, 'y').step(0.1).name('旋转y');
77457
+ gui.add(group.rotation, 'z').step(0.1).name('旋转z');
77458
+ }
77459
+ },
77460
+ render: (gl, matrix) => {
77461
+ const rotationX = new three_module_Matrix4().makeRotationAxis(new three_module_Vector3(1, 0, 0), modelTransform.rotateX);
77462
+ const rotationY = new three_module_Matrix4().makeRotationAxis(new three_module_Vector3(0, 1, 0), modelTransform.rotateY);
77463
+ const rotationZ = new three_module_Matrix4().makeRotationAxis(new three_module_Vector3(0, 0, 1), modelTransform.rotateZ);
77464
+ const m = new three_module_Matrix4().fromArray(matrix);
77465
+ const l = new three_module_Matrix4().makeTranslation(modelTransform.translateX, modelTransform.translateY, modelTransform.translateZ).scale(new three_module_Vector3(modelTransform.scale, -modelTransform.scale, modelTransform.scale)).multiply(rotationX).multiply(rotationY).multiply(rotationZ);
77466
+ camera.projectionMatrix.elements = matrix;
77467
+ camera.projectionMatrix = m.multiply(l);
77468
+ renderer.resetState();
77469
+ renderer.render(scene, camera);
77470
+ map.triggerRepaint();
77471
+ }
77472
+ };
77473
+ return customLayer;
77474
+
77475
+ //获取管道
77476
+ function getPipeGeometry(center, opt) {
77477
+ if (opt.data) {
77478
+ let points = [];
77479
+ opt.data.features.forEach(geo => {
77480
+ geo.geometry.coordinates.forEach(item => {
77481
+ let mercatorCoordinate = mapbox_gl_default().MercatorCoordinate.fromLngLat(item, 0);
77482
+ let units = mercatorCoordinate.meterInMercatorCoordinateUnits();
77483
+ points.push(new three_module_Vector2((mercatorCoordinate.x - center.x) / units, -1 * (mercatorCoordinate.y - center.y) / units));
77484
+ });
77485
+ });
77486
+ let mesh = '';
77487
+ if (points.length > 1) {
77488
+ // const shape = new THREE.Shape(points)
77489
+ points = points.map(vector => {
77490
+ return new three_module_Vector3(vector.x, vector.y, 0);
77491
+ });
77492
+ mesh = transition3d(points); // 创建管道
77493
+ }
77494
+
77495
+ return mesh;
77496
+ } else {
77497
+ const curve = new CatmullRomCurve3([new three_module_Vector3(-10, 0, 0), new three_module_Vector3(0, 10, 0), new three_module_Vector3(10, 0, 0)]);
77498
+ return new TubeGeometry(curve, 4, 2, 8, false);
77499
+ }
77500
+ }
77501
+
77502
+ // 将shape转换为ExtrudeGeometry
77503
+ function transition3d(points) {
77504
+ // console.log(points, 'points')
77505
+ // 创建一条曲线
77506
+ const curve = new CatmullRomCurve3(points, false, 'catmullrom', 0.5);
77507
+
77508
+ // 创建管道
77509
+ const geometry = new TubeGeometry(curve, 4, 1, 8, false);
77510
+ return geometry;
77511
+ }
77512
+ }
77513
+ });
77514
+ };
77334
77515
  // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
77335
77516
  var defineProperty = __webpack_require__(1080);
77336
77517
  ;// CONCATENATED MODULE: ./node_modules/@luma.gl/engine/dist/esm/animation/timeline.js
@@ -119242,7 +119423,7 @@ var jsonFilevue_type_template_id_57aca7b6_scoped_true_staticRenderFns = [];
119242
119423
  if (json) {
119243
119424
  json = JSON.parse(json);
119244
119425
  if (!json.features) {
119245
- json = arcGisToGeoJson(json);
119426
+ json = (0,mapTools_namespaceObject.arcGisToGeoJson)(json);
119246
119427
  }
119247
119428
  const bbox = es(json);
119248
119429
  if (bbox.length > 0 && bbox[0] > 180) {
@@ -119283,8 +119464,8 @@ var jsonFile_component = normalizeComponent(
119283
119464
  )
119284
119465
 
119285
119466
  /* harmony default export */ var jsonFile = (jsonFile_component.exports);
119286
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/shpFile.vue?vue&type=template&id=3bd5e448&scoped=true&
119287
- var shpFilevue_type_template_id_3bd5e448_scoped_true_render = function render() {
119467
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/shpFile.vue?vue&type=template&id=3b26555c&scoped=true&
119468
+ var shpFilevue_type_template_id_3b26555c_scoped_true_render = function render() {
119288
119469
  var _vm = this,
119289
119470
  _c = _vm._self._c;
119290
119471
  return _c('el-button', {
@@ -119304,7 +119485,7 @@ var shpFilevue_type_template_id_3bd5e448_scoped_true_render = function render()
119304
119485
  }
119305
119486
  })]);
119306
119487
  };
119307
- var shpFilevue_type_template_id_3bd5e448_scoped_true_staticRenderFns = [];
119488
+ var shpFilevue_type_template_id_3b26555c_scoped_true_staticRenderFns = [];
119308
119489
 
119309
119490
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/shpFile.vue?vue&type=script&lang=js&
119310
119491
 
@@ -119327,7 +119508,7 @@ const shapeFile = __webpack_require__(4952); // 导入shpfile.js
119327
119508
  shapeFile.read(result).then(json => {
119328
119509
  const bbox = es(json);
119329
119510
  if (!json.features) {
119330
- json = arcGisToGeoJson(json);
119511
+ json = geometryCollectionToFeatureCollection(json);
119331
119512
  }
119332
119513
  if (bbox.length > 0 && bbox[0] > 180) {
119333
119514
  // 墨卡托坐标需要转换
@@ -119345,9 +119526,9 @@ const shapeFile = __webpack_require__(4952); // 导入shpfile.js
119345
119526
  });
119346
119527
  ;// CONCATENATED MODULE: ./src/package/draw/shpFile.vue?vue&type=script&lang=js&
119347
119528
  /* harmony default export */ var draw_shpFilevue_type_script_lang_js_ = (shpFilevue_type_script_lang_js_);
119348
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-64.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/shpFile.vue?vue&type=style&index=0&id=3bd5e448&prod&lang=scss&scoped=true&
119349
- var shpFilevue_type_style_index_0_id_3bd5e448_prod_lang_scss_scoped_true_ = __webpack_require__(5872);
119350
- ;// CONCATENATED MODULE: ./src/package/draw/shpFile.vue?vue&type=style&index=0&id=3bd5e448&prod&lang=scss&scoped=true&
119529
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-64.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/shpFile.vue?vue&type=style&index=0&id=3b26555c&prod&lang=scss&scoped=true&
119530
+ var shpFilevue_type_style_index_0_id_3b26555c_prod_lang_scss_scoped_true_ = __webpack_require__(3740);
119531
+ ;// CONCATENATED MODULE: ./src/package/draw/shpFile.vue?vue&type=style&index=0&id=3b26555c&prod&lang=scss&scoped=true&
119351
119532
 
119352
119533
  ;// CONCATENATED MODULE: ./src/package/draw/shpFile.vue
119353
119534
 
@@ -119360,11 +119541,11 @@ var shpFilevue_type_style_index_0_id_3bd5e448_prod_lang_scss_scoped_true_ = __we
119360
119541
 
119361
119542
  var shpFile_component = normalizeComponent(
119362
119543
  draw_shpFilevue_type_script_lang_js_,
119363
- shpFilevue_type_template_id_3bd5e448_scoped_true_render,
119364
- shpFilevue_type_template_id_3bd5e448_scoped_true_staticRenderFns,
119544
+ shpFilevue_type_template_id_3b26555c_scoped_true_render,
119545
+ shpFilevue_type_template_id_3b26555c_scoped_true_staticRenderFns,
119365
119546
  false,
119366
119547
  null,
119367
- "3bd5e448",
119548
+ "3b26555c",
119368
119549
  null
119369
119550
 
119370
119551
  )
@@ -120349,6 +120530,7 @@ var polygon_component = normalizeComponent(
120349
120530
 
120350
120531
 
120351
120532
 
120533
+
120352
120534
  // 图层操作
120353
120535
  const mapLayers = {
120354
120536
  showLayerText: showLayerText,
@@ -120377,6 +120559,7 @@ const mapDraw = {
120377
120559
  addLayerCircle: addLayerCircle,
120378
120560
  addCircleAnimate: addCircleAnimate,
120379
120561
  addLayerModel: addLayerModel,
120562
+ addLayerPipe: addLayerPipe,
120380
120563
  addLayerWater: addLayerWater,
120381
120564
  load3DTiles: load3DTiles
120382
120565
  };
@@ -120394,7 +120577,8 @@ const mapTools = {
120394
120577
  polygonCenter: polygonCenter,
120395
120578
  GeoAddress: GeoAddress,
120396
120579
  Geolocation: Geolocation,
120397
- getElevation: getElevation
120580
+ getElevation: getElevation,
120581
+ geometryCollectionToFeatureCollection: geometryCollectionToFeatureCollection
120398
120582
  };
120399
120583
 
120400
120584
  // 地图事件