UNPKG

@uiw/react-baidu-map-scale-control

Version:

Baidu Map scale-control Components for React.

40 lines 1.04 kB
import { useEffect, useState } from 'react'; import { useMapContext } from '@uiw/react-baidu-map-map'; import { useProperties, useVisiable } from '@uiw/react-baidu-map-utils'; export function useScaleControl(props) { if (props === void 0) { props = {}; } var [scaleControl, setScaleControl] = useState(); var { anchor, offset } = props; var { map } = useMapContext(); useEffect(() => { if (map && !scaleControl) { var instance = new BMap.ScaleControl({ anchor: anchor || BMAP_ANCHOR_TOP_LEFT, offset }); map.addControl(instance); setScaleControl(instance); } return () => { if (map && scaleControl) { try { map.removeControl(scaleControl); } catch (error) {} } }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [map, scaleControl]); useVisiable(scaleControl, props); useProperties(scaleControl, props, ['Anchor', 'Offset', 'Unit']); return { scaleControl, setScaleControl }; }