@vtx/map 1.0.7 → 1.1.0
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.css +3 -0
- package/lib/VtxMap/AMap/AMap.js +63 -6
- package/lib/VtxMap/AMap/AMap.less +3 -0
- package/lib/VtxMap/BMap/Map.js +66 -9
- package/lib/VtxMap/TMap/TMap.css +6 -0
- package/lib/VtxMap/TMap/TMap.js +51 -10
- package/lib/VtxMap/TMap/TMap.less +7 -1
- package/package.json +6 -3
package/lib/VtxMap/AMap/AMap.css
CHANGED
package/lib/VtxMap/AMap/AMap.js
CHANGED
|
@@ -12,6 +12,8 @@ var _react = require('react');
|
|
|
12
12
|
|
|
13
13
|
var _react2 = _interopRequireDefault(_react);
|
|
14
14
|
|
|
15
|
+
var _reactDom = require('react-dom');
|
|
16
|
+
|
|
15
17
|
require('./AMap.css');
|
|
16
18
|
|
|
17
19
|
var _MapToolFunction = require('../MapToolFunction');
|
|
@@ -168,7 +170,8 @@ var VortexAMap = function (_React$Component) {
|
|
|
168
170
|
boundaryName = _t$props.boundaryName,
|
|
169
171
|
heatMapData = _t$props.heatMapData,
|
|
170
172
|
areaRestriction = _t$props.areaRestriction,
|
|
171
|
-
coverageType = _t$props.coverageType
|
|
173
|
+
coverageType = _t$props.coverageType,
|
|
174
|
+
infoWindowData = _t$props.infoWindowData;
|
|
172
175
|
// 切换地图矢量图和卫星图背景
|
|
173
176
|
|
|
174
177
|
if (coverageType) {
|
|
@@ -239,6 +242,10 @@ var VortexAMap = function (_React$Component) {
|
|
|
239
242
|
if (heatMapData) {
|
|
240
243
|
t.heatMapOverlay(heatMapData);
|
|
241
244
|
}
|
|
245
|
+
// 打开信息窗体
|
|
246
|
+
if (infoWindowData) {
|
|
247
|
+
t.infoWindow(infoWindowData);
|
|
248
|
+
}
|
|
242
249
|
//添加海量点
|
|
243
250
|
if (mapPointCollection instanceof Array) {
|
|
244
251
|
t.addPointCollection(mapPointCollection);
|
|
@@ -651,10 +658,16 @@ var VortexAMap = function (_React$Component) {
|
|
|
651
658
|
ids = obj.fitView.split(',');
|
|
652
659
|
}
|
|
653
660
|
if (ids[0] instanceof Array) {
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
t.state.gis.setBounds(b);
|
|
661
|
+
// let l = new AMap.LngLat(ids[0][0],ids[0][1]),
|
|
662
|
+
// r = new AMap.LngLat(ids[1][0],ids[1][1]);
|
|
663
|
+
// let b = new AMap.Bounds(l,r);
|
|
664
|
+
// t.state.gis.setBounds(b);
|
|
665
|
+
// fix: 高德地图在[[lng,lat],[lng,lat]]方式下的最佳视野
|
|
666
|
+
t.state.gis.setFitView(ids.map(function (item) {
|
|
667
|
+
return new AMap.Marker({
|
|
668
|
+
position: new AMap.LngLat(item[0], item[1])
|
|
669
|
+
});
|
|
670
|
+
}));
|
|
658
671
|
} else {
|
|
659
672
|
t.state.gis.setFitView(this.GM.getMoreGraphic(ids));
|
|
660
673
|
}
|
|
@@ -1020,6 +1033,45 @@ var VortexAMap = function (_React$Component) {
|
|
|
1020
1033
|
t.heatmap.hide();
|
|
1021
1034
|
}
|
|
1022
1035
|
}
|
|
1036
|
+
// 信息窗体
|
|
1037
|
+
|
|
1038
|
+
}, {
|
|
1039
|
+
key: 'infoWindow',
|
|
1040
|
+
value: function (_infoWindow) {
|
|
1041
|
+
function infoWindow() {
|
|
1042
|
+
return _infoWindow.apply(this, arguments);
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
infoWindow.toString = function () {
|
|
1046
|
+
return _infoWindow.toString();
|
|
1047
|
+
};
|
|
1048
|
+
|
|
1049
|
+
return infoWindow;
|
|
1050
|
+
}(function () {
|
|
1051
|
+
var d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1052
|
+
|
|
1053
|
+
var t = this;
|
|
1054
|
+
var cg = {
|
|
1055
|
+
width: 300,
|
|
1056
|
+
height: 172
|
|
1057
|
+
};
|
|
1058
|
+
if (d.config) {
|
|
1059
|
+
cg = _extends({}, cg, d.config);
|
|
1060
|
+
}
|
|
1061
|
+
var sContent = document.createElement('div');
|
|
1062
|
+
var infowindow = new AMap.InfoWindow({
|
|
1063
|
+
// isCustom: true,
|
|
1064
|
+
content: sContent
|
|
1065
|
+
});
|
|
1066
|
+
infowindow.setSize(new AMap.Size(cg.width, cg.height + 20));
|
|
1067
|
+
|
|
1068
|
+
if (d.lat && d.lng && d.content) {
|
|
1069
|
+
(0, _reactDom.render)(d.content, sContent);
|
|
1070
|
+
infowindow.open(t.state.gis, [d.lng, d.lat]);
|
|
1071
|
+
} else {
|
|
1072
|
+
infoWindow.close();
|
|
1073
|
+
}
|
|
1074
|
+
})
|
|
1023
1075
|
//添加海量点
|
|
1024
1076
|
|
|
1025
1077
|
}, {
|
|
@@ -2612,7 +2664,8 @@ var VortexAMap = function (_React$Component) {
|
|
|
2612
2664
|
areaRestriction = nextProps.areaRestriction,
|
|
2613
2665
|
isClearAreaRestriction = nextProps.isClearAreaRestriction,
|
|
2614
2666
|
mapStyle = nextProps.mapStyle,
|
|
2615
|
-
coverageType = nextProps.coverageType
|
|
2667
|
+
coverageType = nextProps.coverageType,
|
|
2668
|
+
infoWindowData = nextProps.infoWindowData;
|
|
2616
2669
|
|
|
2617
2670
|
var props = t.props;
|
|
2618
2671
|
// 设置地图样式
|
|
@@ -2934,6 +2987,10 @@ var VortexAMap = function (_React$Component) {
|
|
|
2934
2987
|
if (heatMapData && !t.deepEqual(heatMapData, props.heatMapData)) {
|
|
2935
2988
|
t.heatMapOverlay(heatMapData);
|
|
2936
2989
|
}
|
|
2990
|
+
// 打开信息窗体
|
|
2991
|
+
if (infoWindowData && !t.deepEqual(infoWindowData, t.props.infoWindowData)) {
|
|
2992
|
+
t.infoWindow(infoWindowData);
|
|
2993
|
+
}
|
|
2937
2994
|
//添加图片图层
|
|
2938
2995
|
if (imageOverlays instanceof Array && props.imageOverlays instanceof Array && !t.deepEqual(imageOverlays, props.imageOverlays)) {
|
|
2939
2996
|
t.imageUrlOverlay(imageOverlays);
|
package/lib/VtxMap/BMap/Map.js
CHANGED
|
@@ -12,6 +12,8 @@ var _react = require('react');
|
|
|
12
12
|
|
|
13
13
|
var _react2 = _interopRequireDefault(_react);
|
|
14
14
|
|
|
15
|
+
var _reactDom = require('react-dom');
|
|
16
|
+
|
|
15
17
|
require('./Map.css');
|
|
16
18
|
|
|
17
19
|
var _MapToolFunction = require('../MapToolFunction');
|
|
@@ -214,6 +216,7 @@ var BaiduMap = function (_React$Component) {
|
|
|
214
216
|
var _props2 = this.props,
|
|
215
217
|
boundaryName = _props2.boundaryName,
|
|
216
218
|
heatMapData = _props2.heatMapData,
|
|
219
|
+
infoWindowData = _props2.infoWindowData,
|
|
217
220
|
customizedBoundary = _props2.customizedBoundary;
|
|
218
221
|
var _state = this.state,
|
|
219
222
|
boundaryInfo = _state.boundaryInfo,
|
|
@@ -254,6 +257,10 @@ var BaiduMap = function (_React$Component) {
|
|
|
254
257
|
if (heatMapData) {
|
|
255
258
|
t.heatMapOverlay(heatMapData);
|
|
256
259
|
}
|
|
260
|
+
// 打开信息窗体
|
|
261
|
+
if (infoWindowData) {
|
|
262
|
+
t.infoWindow(infoWindowData);
|
|
263
|
+
}
|
|
257
264
|
if (mapPointCollection instanceof Array) {
|
|
258
265
|
t.addPointCollection(mapPointCollection);
|
|
259
266
|
}
|
|
@@ -1242,12 +1249,17 @@ var BaiduMap = function (_React$Component) {
|
|
|
1242
1249
|
var t = this;
|
|
1243
1250
|
bdNames.forEach(function (name) {
|
|
1244
1251
|
t._boundary.get(name, function (ary) {
|
|
1245
|
-
|
|
1246
|
-
var
|
|
1247
|
-
|
|
1252
|
+
// fix 飞地有多个区域的问题
|
|
1253
|
+
var arr = [];
|
|
1254
|
+
ary.boundaries.forEach(function (item) {
|
|
1255
|
+
var id = 'boundary' + new Date().getTime() + Math.random();
|
|
1256
|
+
var paths = item.split(';').map(function (item, index) {
|
|
1257
|
+
return item.split(',');
|
|
1258
|
+
});
|
|
1259
|
+
arr.push({ id: id, rings: paths, name: name });
|
|
1260
|
+
t.state.boundaryInfo.push({ id: id, name: name });
|
|
1248
1261
|
});
|
|
1249
|
-
t.addPolygon(
|
|
1250
|
-
t.state.boundaryInfo.push({ id: id, name: name });
|
|
1262
|
+
t.addPolygon(arr);
|
|
1251
1263
|
});
|
|
1252
1264
|
});
|
|
1253
1265
|
}
|
|
@@ -1312,6 +1324,34 @@ var BaiduMap = function (_React$Component) {
|
|
|
1312
1324
|
t.heatmap.hide();
|
|
1313
1325
|
}
|
|
1314
1326
|
}
|
|
1327
|
+
//信息窗体
|
|
1328
|
+
|
|
1329
|
+
}, {
|
|
1330
|
+
key: 'infoWindow',
|
|
1331
|
+
value: function infoWindow() {
|
|
1332
|
+
var d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1333
|
+
|
|
1334
|
+
var t = this;
|
|
1335
|
+
var cg = {
|
|
1336
|
+
width: 300,
|
|
1337
|
+
height: 172
|
|
1338
|
+
};
|
|
1339
|
+
if (d.config) {
|
|
1340
|
+
cg = _extends({}, cg, d.config);
|
|
1341
|
+
}
|
|
1342
|
+
var sContent = document.createElement('div');
|
|
1343
|
+
var infowindow = new BMap.InfoWindow(sContent);
|
|
1344
|
+
|
|
1345
|
+
infowindow.setWidth(cg.width);
|
|
1346
|
+
infowindow.setHeight(cg.height);
|
|
1347
|
+
|
|
1348
|
+
if (d.lat && d.lng && d.content) {
|
|
1349
|
+
(0, _reactDom.render)(d.content, sContent);
|
|
1350
|
+
t.state.gis.openInfoWindow(infowindow, new BMap.Point(d.lng, d.lat));
|
|
1351
|
+
} else {
|
|
1352
|
+
infowindow && t.state.gis.closeInfoWindow();
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1315
1355
|
//添加海量点
|
|
1316
1356
|
|
|
1317
1357
|
}, {
|
|
@@ -1633,16 +1673,28 @@ var BaiduMap = function (_React$Component) {
|
|
|
1633
1673
|
break;
|
|
1634
1674
|
}
|
|
1635
1675
|
|
|
1676
|
+
/**
|
|
1677
|
+
* 用法
|
|
1678
|
+
* map.setVisiblePoints('lng,lat;lng,lat')
|
|
1679
|
+
*/
|
|
1636
1680
|
if (typeof arg === 'string') {
|
|
1637
1681
|
ary = arg.split(',');
|
|
1638
1682
|
obj = t.getFitView(ary);
|
|
1639
1683
|
} else if (arg instanceof Array) {
|
|
1640
|
-
|
|
1684
|
+
/**
|
|
1685
|
+
* 用法
|
|
1686
|
+
* map.setVisiblePoints([[lng,lat],[lng,lat]])
|
|
1687
|
+
*/
|
|
1688
|
+
if (arg[0] instanceof Array) {
|
|
1641
1689
|
var a = [];
|
|
1642
|
-
for (var i = 0; i <
|
|
1643
|
-
a
|
|
1690
|
+
for (var i = 0; i < arg.length; i++) {
|
|
1691
|
+
a.push(new BMap.Point(arg[i][0], arg[i][1]));
|
|
1644
1692
|
}
|
|
1645
1693
|
obj = t.state.gis.getViewport(a);
|
|
1694
|
+
/**
|
|
1695
|
+
* 用法
|
|
1696
|
+
* map.setVisiblePoints(['lng,lat','lng,lat'])
|
|
1697
|
+
*/
|
|
1646
1698
|
} else {
|
|
1647
1699
|
obj = t.getFitView(arg);
|
|
1648
1700
|
}
|
|
@@ -2740,7 +2792,8 @@ var BaiduMap = function (_React$Component) {
|
|
|
2740
2792
|
isClearAreaRestriction = nextProps.isClearAreaRestriction,
|
|
2741
2793
|
isClearAll = nextProps.isClearAll,
|
|
2742
2794
|
mapStyle = nextProps.mapStyle,
|
|
2743
|
-
coverageType = nextProps.coverageType
|
|
2795
|
+
coverageType = nextProps.coverageType,
|
|
2796
|
+
infoWindowData = nextProps.infoWindowData;
|
|
2744
2797
|
|
|
2745
2798
|
var props = t.props;
|
|
2746
2799
|
|
|
@@ -3070,6 +3123,10 @@ var BaiduMap = function (_React$Component) {
|
|
|
3070
3123
|
if (heatMapData && !t.deepEqual(heatMapData, props.heatMapData)) {
|
|
3071
3124
|
t.heatMapOverlay(heatMapData);
|
|
3072
3125
|
}
|
|
3126
|
+
// 打开信息窗体
|
|
3127
|
+
if (infoWindowData && !t.deepEqual(infoWindowData, props.infoWindowData)) {
|
|
3128
|
+
t.infoWindow(infoWindowData);
|
|
3129
|
+
}
|
|
3073
3130
|
//添加图片图层
|
|
3074
3131
|
if (imageOverlays instanceof Array && props.imageOverlays instanceof Array && !t.deepEqual(imageOverlays, props.imageOverlays)) {
|
|
3075
3132
|
t.imageUrlOverlay(imageOverlays);
|
package/lib/VtxMap/TMap/TMap.css
CHANGED
package/lib/VtxMap/TMap/TMap.js
CHANGED
|
@@ -12,6 +12,8 @@ var _react = require('react');
|
|
|
12
12
|
|
|
13
13
|
var _react2 = _interopRequireDefault(_react);
|
|
14
14
|
|
|
15
|
+
var _reactDom = require('react-dom');
|
|
16
|
+
|
|
15
17
|
require('./TMap.css');
|
|
16
18
|
|
|
17
19
|
var _MapToolFunction = require('../MapToolFunction');
|
|
@@ -164,7 +166,8 @@ var TMap = function (_React$Component) {
|
|
|
164
166
|
areaRestriction = _t$props.areaRestriction,
|
|
165
167
|
heatMapData = _t$props.heatMapData,
|
|
166
168
|
imageOverlays = _t$props.imageOverlays,
|
|
167
|
-
coverageType = _t$props.coverageType
|
|
169
|
+
coverageType = _t$props.coverageType,
|
|
170
|
+
infoWindowData = _t$props.infoWindowData;
|
|
168
171
|
//创建地图
|
|
169
172
|
|
|
170
173
|
t.createMap();
|
|
@@ -200,6 +203,10 @@ var TMap = function (_React$Component) {
|
|
|
200
203
|
if (heatMapData) {
|
|
201
204
|
t.heatMapOverlay(heatMapData);
|
|
202
205
|
}
|
|
206
|
+
// 打开信息窗体
|
|
207
|
+
if (infoWindowData) {
|
|
208
|
+
t.infoWindow(infoWindowData);
|
|
209
|
+
}
|
|
203
210
|
//添加海量点
|
|
204
211
|
if (mapPointCollection instanceof Array) {
|
|
205
212
|
setTimeout(function () {
|
|
@@ -461,24 +468,25 @@ var TMap = function (_React$Component) {
|
|
|
461
468
|
ids = obj.fitView.split(',');
|
|
462
469
|
}
|
|
463
470
|
if (ids[0] instanceof Array) {
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
}
|
|
471
|
+
ls = ids.map(function (item) {
|
|
472
|
+
return new T.LngLat(item[0], item[1]);
|
|
473
|
+
});
|
|
467
474
|
} else {
|
|
468
475
|
ls = getLngLats(ids);
|
|
469
476
|
}
|
|
470
477
|
break;
|
|
471
478
|
}
|
|
472
479
|
if (ls.length >= 1) {
|
|
480
|
+
var _t$state$gis$getViewp = t.state.gis.getViewport(ls),
|
|
481
|
+
center = _t$state$gis$getViewp.center,
|
|
482
|
+
zoom = _t$state$gis$getViewp.zoom;
|
|
483
|
+
|
|
473
484
|
if (obj.type == 'zoom') {
|
|
474
|
-
t.setZoomLevel(
|
|
485
|
+
t.setZoomLevel(zoom);
|
|
475
486
|
} else if (obj.type == 'center') {
|
|
476
|
-
var _t$state$gis$getViewp = t.state.gis.getViewport(ls),
|
|
477
|
-
center = _t$state$gis$getViewp.center;
|
|
478
|
-
|
|
479
487
|
t.setCenter([center.lng, center.lat]);
|
|
480
488
|
} else {
|
|
481
|
-
t.state.gis.
|
|
489
|
+
t.state.gis.centerAndZoom(center, zoom);
|
|
482
490
|
}
|
|
483
491
|
}
|
|
484
492
|
}
|
|
@@ -1551,6 +1559,34 @@ var TMap = function (_React$Component) {
|
|
|
1551
1559
|
t.heatmap.hide();
|
|
1552
1560
|
}
|
|
1553
1561
|
}
|
|
1562
|
+
//信息窗体
|
|
1563
|
+
|
|
1564
|
+
}, {
|
|
1565
|
+
key: 'infoWindow',
|
|
1566
|
+
value: function infoWindow() {
|
|
1567
|
+
var d = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1568
|
+
|
|
1569
|
+
var t = this;
|
|
1570
|
+
var cg = {
|
|
1571
|
+
width: 300,
|
|
1572
|
+
height: 172
|
|
1573
|
+
};
|
|
1574
|
+
if (d.config) {
|
|
1575
|
+
cg = _extends({}, cg, d.config);
|
|
1576
|
+
}
|
|
1577
|
+
var sContent = document.createElement('div');
|
|
1578
|
+
var infowindow = new T.InfoWindow();
|
|
1579
|
+
infowindow.setMinWidth(cg.width);
|
|
1580
|
+
infowindow.setMaxHeight(cg.height);
|
|
1581
|
+
|
|
1582
|
+
if (d.lat && d.lng && d.content) {
|
|
1583
|
+
(0, _reactDom.render)(d.content, sContent);
|
|
1584
|
+
infowindow.setContent(sContent);
|
|
1585
|
+
t.state.gis.openInfoWindow(infowindow, new T.LngLat(d.lng, d.lat));
|
|
1586
|
+
} else {
|
|
1587
|
+
infowindow && t.state.gis.closeInfoWindow();
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1554
1590
|
/*
|
|
1555
1591
|
参数
|
|
1556
1592
|
geometryType:point/polyline/polygon/circle/rectangle 默认point
|
|
@@ -2729,7 +2765,8 @@ var TMap = function (_React$Component) {
|
|
|
2729
2765
|
isSetAreaRestriction = nextProps.isSetAreaRestriction,
|
|
2730
2766
|
areaRestriction = nextProps.areaRestriction,
|
|
2731
2767
|
isClearAreaRestriction = nextProps.isClearAreaRestriction,
|
|
2732
|
-
coverageType = nextProps.coverageType
|
|
2768
|
+
coverageType = nextProps.coverageType,
|
|
2769
|
+
infoWindowData = nextProps.infoWindowData;
|
|
2733
2770
|
|
|
2734
2771
|
// 等待地图加载
|
|
2735
2772
|
|
|
@@ -3057,6 +3094,10 @@ var TMap = function (_React$Component) {
|
|
|
3057
3094
|
if (heatMapData && !t.deepEqual(heatMapData, t.props.heatMapData)) {
|
|
3058
3095
|
t.heatMapOverlay(heatMapData);
|
|
3059
3096
|
}
|
|
3097
|
+
// 打开信息窗体
|
|
3098
|
+
if (infoWindowData && !t.deepEqual(infoWindowData, t.props.infoWindowData)) {
|
|
3099
|
+
t.infoWindow(infoWindowData);
|
|
3100
|
+
}
|
|
3060
3101
|
//添加图片图层
|
|
3061
3102
|
if (imageOverlays instanceof Array && !t.deepEqual(imageOverlays, t.props.imageOverlays)) {
|
|
3062
3103
|
t.imageUrlOverlay(imageOverlays);
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtx/map",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "@vtx/map",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"docs:dev": "dumi dev",
|
|
8
|
+
"docs:build": "dumi build",
|
|
7
9
|
"build": "rimraf lib && babel src --out-dir lib && node styleProcessor.js",
|
|
8
10
|
"prepublish": "npm run build"
|
|
9
11
|
},
|
|
@@ -26,13 +28,14 @@
|
|
|
26
28
|
"babel-preset-es2015": "^6.24.1",
|
|
27
29
|
"babel-preset-react": "^6.24.1",
|
|
28
30
|
"babel-preset-stage-0": "^6.24.1",
|
|
31
|
+
"dumi": "^1.1.40",
|
|
29
32
|
"less": "^3.9.0",
|
|
30
33
|
"rimraf": "^2.6.2"
|
|
31
34
|
},
|
|
32
35
|
"peerDependencies": {
|
|
36
|
+
"antd": "3.26.19",
|
|
33
37
|
"react": "^16.12.0",
|
|
34
|
-
"react-dom": "^16.12.0"
|
|
35
|
-
"antd": "3.26.19"
|
|
38
|
+
"react-dom": "^16.12.0"
|
|
36
39
|
},
|
|
37
40
|
"author": "ztq",
|
|
38
41
|
"license": "MIT"
|