@vtx/map 1.1.19 → 1.1.21
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/VtxMap/AMap/AMap.js +21 -0
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +21 -0
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +184 -51
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +22 -0
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +11 -1
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/package.json +1 -1
package/lib/VtxMap/OlMap/Map.js
CHANGED
|
@@ -31,8 +31,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
31
31
|
|
|
32
32
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
33
|
|
|
34
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
35
|
-
|
|
36
34
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
37
35
|
|
|
38
36
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -65,6 +63,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
65
63
|
|
|
66
64
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
67
65
|
|
|
66
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
67
|
+
|
|
68
68
|
var Set = _immutable["default"].Set;
|
|
69
69
|
|
|
70
70
|
var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
@@ -78,6 +78,68 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
78
78
|
_classCallCheck(this, OlMap);
|
|
79
79
|
|
|
80
80
|
_this = _super.call(this, props);
|
|
81
|
+
|
|
82
|
+
_defineProperty(_assertThisInitialized(_this), "loadLayers", function () {
|
|
83
|
+
var nextLayers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
84
|
+
var currentLayers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
85
|
+
var first = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
86
|
+
|
|
87
|
+
var t = _assertThisInitialized(_this); // 对比图层的变化,找出需要新增和需要删除的。
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
var addLayers = nextLayers.filter(function (item) {
|
|
91
|
+
return !currentLayers.map(function (e) {
|
|
92
|
+
return e.coverage;
|
|
93
|
+
}).includes(item.coverage);
|
|
94
|
+
});
|
|
95
|
+
var removeLayers = currentLayers.filter(function (item) {
|
|
96
|
+
return !nextLayers.map(function (e) {
|
|
97
|
+
return e.coverage;
|
|
98
|
+
}).includes(item.coverage);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
if (removeLayers.length > 0) {
|
|
102
|
+
removeLayers.forEach(function (item) {
|
|
103
|
+
var exist = t.olLayers.find(function (e) {
|
|
104
|
+
return e.address === item.coverage;
|
|
105
|
+
});
|
|
106
|
+
exist && exist.layer.setVisible(false);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (addLayers.length > 0) {
|
|
111
|
+
addLayers.map(function (item) {
|
|
112
|
+
if (item.coverage.startsWith("http") || item.coverage.startsWith('/')) {
|
|
113
|
+
switch (item.type) {
|
|
114
|
+
// 超图
|
|
115
|
+
case 'superMap':
|
|
116
|
+
t.addSuperMapLayer(item.coverage);
|
|
117
|
+
break;
|
|
118
|
+
// geoServer
|
|
119
|
+
|
|
120
|
+
case 'geoServer':
|
|
121
|
+
t.addGeoServerLayer(item.coverage);
|
|
122
|
+
|
|
123
|
+
default:
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
} else if (OL_SCREEN[item.coverage]) {
|
|
127
|
+
if (first) {
|
|
128
|
+
var _layer = eval(OL_SCREEN[item.coverage].initLayer);
|
|
129
|
+
|
|
130
|
+
t.state.gis.addLayer(_layer);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
} else {
|
|
135
|
+
if (first) {
|
|
136
|
+
var _layer2 = eval(OL_SCREEN["default"].initLayer);
|
|
137
|
+
|
|
138
|
+
t.state.gis.addLayer(_layer2);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
81
143
|
_this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后
|
|
82
144
|
|
|
83
145
|
_this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理
|
|
@@ -141,7 +203,11 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
141
203
|
|
|
142
204
|
_this.areaRestriction = null; //区域限制数据
|
|
143
205
|
|
|
144
|
-
_this.movePoints = [];
|
|
206
|
+
_this.movePoints = [];
|
|
207
|
+
_this.olLayers = []; // ol图层集合 {address:'', layer: ''}
|
|
208
|
+
|
|
209
|
+
_this.baseLayer = null; // 地图图层
|
|
210
|
+
//是否绘制测距
|
|
145
211
|
|
|
146
212
|
_this.rangingTool = {
|
|
147
213
|
isRanging: false,
|
|
@@ -356,7 +422,7 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
356
422
|
var target = feature.getProperties(); // top: e.clientY,//当前点所在的位置(屏幕)
|
|
357
423
|
// left: e.clientX,
|
|
358
424
|
|
|
359
|
-
t.clickGraphic(target.id, evt);
|
|
425
|
+
t.clickGraphic(target.id || target.elementId, evt, target);
|
|
360
426
|
} else {
|
|
361
427
|
t.clickMap(evt);
|
|
362
428
|
}
|
|
@@ -475,31 +541,93 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
475
541
|
minZoom: minZoom,
|
|
476
542
|
maxZoom: maxZoom
|
|
477
543
|
});
|
|
544
|
+
t.loadLayers(olCoverage, [], true);
|
|
545
|
+
t.initPropsForUser();
|
|
546
|
+
} // 加载图层
|
|
478
547
|
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
})
|
|
487
|
-
});
|
|
548
|
+
}, {
|
|
549
|
+
key: "addSuperMapLayer",
|
|
550
|
+
value: // 添加超图图层
|
|
551
|
+
function addSuperMapLayer(url) {
|
|
552
|
+
var exist = this.olLayers.find(function (item) {
|
|
553
|
+
return item.address === url;
|
|
554
|
+
});
|
|
488
555
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
556
|
+
if (exist) {
|
|
557
|
+
exist.layer.setVisible(true);
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
492
560
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
561
|
+
var layer = new ol.layer.Tile({
|
|
562
|
+
source: new ol.source.TileSuperMapRest({
|
|
563
|
+
url: url
|
|
564
|
+
})
|
|
565
|
+
}); // 将图层添加到地图上
|
|
498
566
|
|
|
499
|
-
|
|
500
|
-
|
|
567
|
+
this.state.gis.addLayer(layer);
|
|
568
|
+
this.olLayers.push({
|
|
569
|
+
address: url,
|
|
570
|
+
layer: layer
|
|
571
|
+
});
|
|
572
|
+
} // 添加geoServer图层
|
|
501
573
|
|
|
502
|
-
|
|
574
|
+
}, {
|
|
575
|
+
key: "addGeoServerLayer",
|
|
576
|
+
value: function addGeoServerLayer(_url) {
|
|
577
|
+
var exist = this.olLayers.find(function (item) {
|
|
578
|
+
return item.address === _url;
|
|
579
|
+
});
|
|
580
|
+
|
|
581
|
+
if (exist) {
|
|
582
|
+
exist.layer.setVisible(true);
|
|
583
|
+
return;
|
|
584
|
+
} // 矢量数据源
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
var vectorSource = new ol.source.Vector({
|
|
588
|
+
// 设置格式化类型
|
|
589
|
+
format: new ol.format.GeoJSON(),
|
|
590
|
+
// url(extent) 在地图范围变化时调用,返回当前的地图范围
|
|
591
|
+
url: function url(extent) {
|
|
592
|
+
return "".concat(_url, "&bbox=").concat(extent.join(','));
|
|
593
|
+
},
|
|
594
|
+
strategy: ol.loadingstrategy.bbox
|
|
595
|
+
}); // 矢量图层
|
|
596
|
+
|
|
597
|
+
var layer = new ol.layer.Vector({
|
|
598
|
+
// 设置数据源
|
|
599
|
+
source: vectorSource,
|
|
600
|
+
// 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}
|
|
601
|
+
style: function style(feature) {
|
|
602
|
+
var _icon$;
|
|
603
|
+
|
|
604
|
+
var el = feature.A || {};
|
|
605
|
+
var icon = JSON.parse(el.icon || '[]');
|
|
606
|
+
var mapIcon = (_icon$ = icon[0]) !== null && _icon$ !== void 0 && _icon$.id ? "/cloudFile/common/downloadFile?id=".concat(icon[0].id) : require("../images/defaultMarker.png");
|
|
607
|
+
return new ol.style.Style({
|
|
608
|
+
// 点位图标
|
|
609
|
+
image: new ol.style.Icon({
|
|
610
|
+
scale: 1,
|
|
611
|
+
src: mapIcon
|
|
612
|
+
}),
|
|
613
|
+
// 线样式
|
|
614
|
+
stroke: new ol.style.Stroke({
|
|
615
|
+
color: el.color || '#1890ff',
|
|
616
|
+
width: 4
|
|
617
|
+
}),
|
|
618
|
+
// 面样式
|
|
619
|
+
fill: new ol.style.Fill({
|
|
620
|
+
color: el.color || 'rgba(255,255,255, 0.5)'
|
|
621
|
+
})
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
}); // 将图层添加到地图上
|
|
625
|
+
|
|
626
|
+
this.state.gis.addLayer(layer);
|
|
627
|
+
this.olLayers.push({
|
|
628
|
+
address: _url,
|
|
629
|
+
layer: layer
|
|
630
|
+
});
|
|
503
631
|
} // 初始化对外方法
|
|
504
632
|
|
|
505
633
|
}, {
|
|
@@ -3563,7 +3691,8 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
3563
3691
|
isSetAreaRestriction = nextProps.isSetAreaRestriction,
|
|
3564
3692
|
areaRestriction = nextProps.areaRestriction,
|
|
3565
3693
|
isClearAreaRestriction = nextProps.isClearAreaRestriction,
|
|
3566
|
-
isClearAll = nextProps.isClearAll
|
|
3694
|
+
isClearAll = nextProps.isClearAll,
|
|
3695
|
+
olProps = nextProps.olProps; // 等待地图加载
|
|
3567
3696
|
|
|
3568
3697
|
if (!t.state.mapCreated) return;
|
|
3569
3698
|
/*点数据处理
|
|
@@ -3865,6 +3994,11 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
3865
3994
|
|
|
3866
3995
|
if (nextProps.showControl && JSON.stringify(nextProps.showControl) != JSON.stringify(t.props.showControl)) {
|
|
3867
3996
|
t.showControl(nextProps);
|
|
3997
|
+
} // 更新需要加载的图层
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
if (nextProps.olProps && JSON.stringify(nextProps.olProps) !== JSON.stringify(t.props.olProps)) {
|
|
4001
|
+
t.loadLayers(nextProps.olProps.olCoverage, t.props.olProps.olCoverage);
|
|
3868
4002
|
}
|
|
3869
4003
|
} // 地图事件
|
|
3870
4004
|
//地图点击事件
|
|
@@ -4077,33 +4211,32 @@ var OlMap = /*#__PURE__*/function (_React$Component) {
|
|
|
4077
4211
|
}, {
|
|
4078
4212
|
key: "clickGraphic",
|
|
4079
4213
|
value: function clickGraphic(id, e) {
|
|
4080
|
-
var
|
|
4214
|
+
var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
4215
|
+
var t = this; //编辑中的图元关闭其他事件返回
|
|
4081
4216
|
|
|
4082
|
-
if (id)
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
t.props.clickGraphic(obj);
|
|
4106
|
-
}
|
|
4217
|
+
if (t.editId == id) return false;
|
|
4218
|
+
|
|
4219
|
+
if (typeof t.props.clickGraphic === 'function') {
|
|
4220
|
+
var _e$pixel = _slicedToArray(e.pixel, 2),
|
|
4221
|
+
clientX = _e$pixel[0],
|
|
4222
|
+
clientY = _e$pixel[1];
|
|
4223
|
+
|
|
4224
|
+
var param = t.getGraphic(id, clientX, clientY);
|
|
4225
|
+
var obj = {
|
|
4226
|
+
param: param,
|
|
4227
|
+
info: target,
|
|
4228
|
+
type: param ? param.geometry.type : null,
|
|
4229
|
+
//图元类型
|
|
4230
|
+
attributes: param ? _objectSpread(_objectSpread({}, param.attributes.other), {
|
|
4231
|
+
config: param.attributes.config
|
|
4232
|
+
}) : null,
|
|
4233
|
+
//添加时图元信息
|
|
4234
|
+
top: clientY,
|
|
4235
|
+
//当前点所在的位置(屏幕)
|
|
4236
|
+
left: clientX,
|
|
4237
|
+
e: e
|
|
4238
|
+
};
|
|
4239
|
+
t.props.clickGraphic(obj);
|
|
4107
4240
|
}
|
|
4108
4241
|
}
|
|
4109
4242
|
}, {
|