@deepinnet-components/pc 0.0.50 → 0.0.51
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.
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { memo, useEffect, useState } from 'react';
|
|
8
|
+
import shortid from 'shortid';
|
|
9
|
+
|
|
10
|
+
// 暂时往外提供颜色参数,因为下面的参数是相对来说比较合理的,如有需要再进行迭代
|
|
11
|
+
|
|
12
|
+
var MapHeatmap = function MapHeatmap(props) {
|
|
13
|
+
var map = props.map,
|
|
14
|
+
_props$data = props.data,
|
|
15
|
+
data = _props$data === void 0 ? [] : _props$data;
|
|
16
|
+
var _useState = useState('heatmap::' + (props.id || shortid.generate())),
|
|
17
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
18
|
+
id = _useState2[0];
|
|
19
|
+
var _useState3 = useState(false),
|
|
20
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
21
|
+
sourceOk = _useState4[0],
|
|
22
|
+
setSourceOk = _useState4[1];
|
|
23
|
+
function addSource() {
|
|
24
|
+
var features = [];
|
|
25
|
+
data.forEach(function (item) {
|
|
26
|
+
features.push({
|
|
27
|
+
type: 'Feature',
|
|
28
|
+
geometry: {
|
|
29
|
+
type: 'Point',
|
|
30
|
+
coordinates: item.position
|
|
31
|
+
},
|
|
32
|
+
properties: {
|
|
33
|
+
mag: item.data
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
var featureCollectionData = {
|
|
38
|
+
type: 'FeatureCollection',
|
|
39
|
+
features: features
|
|
40
|
+
};
|
|
41
|
+
var source = map.getSource(id);
|
|
42
|
+
if (source) {
|
|
43
|
+
source.setData(featureCollectionData);
|
|
44
|
+
} else {
|
|
45
|
+
map.addSource(id, {
|
|
46
|
+
type: 'geojson',
|
|
47
|
+
data: featureCollectionData
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
setSourceOk(true);
|
|
51
|
+
}
|
|
52
|
+
function addLayer() {
|
|
53
|
+
map.addLayer({
|
|
54
|
+
id: id,
|
|
55
|
+
type: 'heatmap',
|
|
56
|
+
source: id,
|
|
57
|
+
layout: {
|
|
58
|
+
visibility: 'visible'
|
|
59
|
+
},
|
|
60
|
+
paint: {
|
|
61
|
+
// 一个热力图数据点的模糊范围,单位是像素,默认值30;要求:值大于等于1,可根据zoom level进行插值设置
|
|
62
|
+
'heatmap-radius': 30,
|
|
63
|
+
//一个热力图单个数据点的热力程度,默认值为1;要求:值大于等于0,支持使用property中某个的热力值
|
|
64
|
+
'heatmap-weight': {
|
|
65
|
+
property: 'mag',
|
|
66
|
+
stops: [[0, 0], [10, 1], [100, 3]]
|
|
67
|
+
},
|
|
68
|
+
// 用于统一控制热力值的强度,默认值1;要求:值大于等于0,可根据zoom level进行插值设置
|
|
69
|
+
'heatmap-intensity': 1,
|
|
70
|
+
// 表示热力图颜色阶梯,阶梯的值域范围为0-1,默认值为["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"]
|
|
71
|
+
'heatmap-color': ['interpolate', ['linear'], ['heatmap-density'], 0, 'rgba(0, 0, 255, 0)', 0.1, 'royalblue', 0.3, 'cyan', 0.5, 'lime', 0.7, 'yellow', 1, 'red'],
|
|
72
|
+
// 表示热力图的不透明度,默认值1;值域范围0-1,可根据zoom level进行插值设置
|
|
73
|
+
'heatmap-opacity': 1
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
useEffect(function () {
|
|
78
|
+
if (!map) return;
|
|
79
|
+
addSource();
|
|
80
|
+
}, [map, data]);
|
|
81
|
+
useEffect(function () {
|
|
82
|
+
if (!map || !sourceOk) return;
|
|
83
|
+
addLayer();
|
|
84
|
+
}, [map, sourceOk]);
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
return function () {
|
|
87
|
+
try {
|
|
88
|
+
map === null || map === void 0 || map.removeLayerAndSource(id);
|
|
89
|
+
} catch (error) {}
|
|
90
|
+
};
|
|
91
|
+
}, []);
|
|
92
|
+
return null;
|
|
93
|
+
};
|
|
94
|
+
var memoCom = /*#__PURE__*/memo(MapHeatmap);
|
|
95
|
+
export default memoCom;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
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."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
/**
|
|
8
|
+
* title:
|
|
9
|
+
* description:
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { Map2D } from "../..";
|
|
13
|
+
import { Button } from 'antd';
|
|
14
|
+
import React, { useEffect, useState } from 'react';
|
|
15
|
+
var Map = Map2D.Map,
|
|
16
|
+
MapHeatmap = Map2D.MapHeatmap;
|
|
17
|
+
function generateRandomPoints(center, count, range) {
|
|
18
|
+
var _center = _slicedToArray(center, 2),
|
|
19
|
+
centerLng = _center[0],
|
|
20
|
+
centerLat = _center[1];
|
|
21
|
+
var points = [];
|
|
22
|
+
for (var i = 0; i < count; i++) {
|
|
23
|
+
var randomLng = centerLng + (Math.random() * 2 - 1) * range;
|
|
24
|
+
var randomLat = centerLat + (Math.random() * 2 - 1) * range;
|
|
25
|
+
points.push([randomLng, randomLat]);
|
|
26
|
+
}
|
|
27
|
+
return points;
|
|
28
|
+
}
|
|
29
|
+
function getRandomInt(min, max) {
|
|
30
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
31
|
+
}
|
|
32
|
+
var App = function App() {
|
|
33
|
+
var _useState = useState('map' + Math.random()),
|
|
34
|
+
_useState2 = _slicedToArray(_useState, 1),
|
|
35
|
+
mapId = _useState2[0];
|
|
36
|
+
var _useState3 = useState(),
|
|
37
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
+
map = _useState4[0],
|
|
39
|
+
setMap = _useState4[1];
|
|
40
|
+
var _useState5 = useState([]),
|
|
41
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
+
list = _useState6[0],
|
|
43
|
+
setList = _useState6[1];
|
|
44
|
+
function getList() {
|
|
45
|
+
var arr = generateRandomPoints([118.859358, 28.970404], 100, 0.02);
|
|
46
|
+
setList(arr.map(function (item) {
|
|
47
|
+
return {
|
|
48
|
+
position: item,
|
|
49
|
+
data: getRandomInt(50, 100)
|
|
50
|
+
};
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
useEffect(function () {
|
|
54
|
+
getList();
|
|
55
|
+
}, []);
|
|
56
|
+
var _useState7 = useState(false),
|
|
57
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
58
|
+
show = _useState8[0],
|
|
59
|
+
setShow = _useState8[1]; // 这是测试代码
|
|
60
|
+
|
|
61
|
+
if (!show) {
|
|
62
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
63
|
+
onClick: function onClick() {
|
|
64
|
+
setShow(true);
|
|
65
|
+
}
|
|
66
|
+
}, "\u5C55\u793A\u6848\u4F8B");
|
|
67
|
+
}
|
|
68
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
style: {
|
|
70
|
+
width: '100%',
|
|
71
|
+
height: 500
|
|
72
|
+
}
|
|
73
|
+
}, /*#__PURE__*/React.createElement(Map, {
|
|
74
|
+
setMap: setMap,
|
|
75
|
+
id: mapId,
|
|
76
|
+
onClick: function onClick(e) {
|
|
77
|
+
console.log([Number(e.lngLat.lng.toFixed(6)), Number(e.lngLat.lng.toFixed(6))]);
|
|
78
|
+
}
|
|
79
|
+
}), !!map && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MapHeatmap, {
|
|
80
|
+
map: map,
|
|
81
|
+
data: list
|
|
82
|
+
})));
|
|
83
|
+
};
|
|
84
|
+
export default App;
|
package/dist/Map2D/index.d.ts
CHANGED
package/dist/Map2D/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import MapPolyline from "./MapPolyline";
|
|
|
5
5
|
import MapPolygon from "./MapPolygon";
|
|
6
6
|
import PolygonEdit from "./PolygonEdit";
|
|
7
7
|
import PolylineEdit from "./PolylineEdit";
|
|
8
|
+
import MapHeatmap from "./MapHeatmap";
|
|
8
9
|
import * as Utils from "./utils";
|
|
9
10
|
var Map2D = {
|
|
10
11
|
Map: Map,
|
|
@@ -14,6 +15,7 @@ var Map2D = {
|
|
|
14
15
|
MapMarkerMulti: MapMarkerMulti,
|
|
15
16
|
PolygonEdit: PolygonEdit,
|
|
16
17
|
PolylineEdit: PolylineEdit,
|
|
18
|
+
MapHeatmap: MapHeatmap,
|
|
17
19
|
Utils: Utils
|
|
18
20
|
};
|
|
19
21
|
export default Map2D;
|