@uiw/react-baidu-map-circle
Version:
Baidu Map circle Components for React.
60 lines (59 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useCircle = useCircle;
var _react = require("react");
var _reactBaiduMapMap = require("@uiw/react-baidu-map-map");
var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils");
function useCircle() {
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
const {
center,
radius,
strokeColor,
fillColor,
strokeWeight,
strokeOpacity,
fillOpacity,
strokeStyle,
enableMassClear,
enableEditing,
enableClicking
} = props;
const {
map
} = (0, _reactBaiduMapMap.useMapContext)();
const [circle, setCircle] = (0, _react.useState)();
(0, _react.useMemo)(() => {
if (map && !circle) {
let point = center;
if (center && center.lng && center.lat) {
point = new BMap.Point(center.lng, center.lat);
}
const opts = {
strokeColor,
fillColor,
strokeWeight,
strokeOpacity,
fillOpacity,
strokeStyle,
enableMassClear,
enableEditing,
enableClicking
};
const instance = new BMap.Circle(point, radius, opts);
map.addOverlay(instance);
setCircle(instance);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [map, circle]);
(0, _reactBaiduMapUtils.useVisiable)(circle, props);
(0, _reactBaiduMapUtils.useEventProperties)(circle, props, ['Click', 'DblClick', 'MouseDown', 'MouseUp', 'MouseOut', 'MouseOver', 'Remove', 'LineUpdate']);
(0, _reactBaiduMapUtils.useEnableProperties)(circle, props, ['Editing', 'MassClear']);
(0, _reactBaiduMapUtils.useProperties)(circle, props, ['Center', 'Radius', 'StrokeColor', 'FillColor', 'StrokeOpacity', 'FillOpacity', 'StrokeWeight', 'StrokeStyle']);
return {
circle,
setCircle
};
}