uiwjs/react-baidu-map

如何将GroundOverlay放到地图的底层

Closed this issue · 6 comments

目前看GroundOverlay是在折线、marker这些上层的,如何改到底层,目前看没有暴露方法出来。求问

export default React.forwardRef<CurveLineProps & { curveLine?: BMapLib.CurveLine }, CurveLineProps>((props, ref) => {
const { curveLine, BMapLib, setPath } = useCurveLine(props);
// eslint-disable-next-line react-hooks/exhaustive-deps
useEffect(() => setPath(props.path), [props.path]);
useImperativeHandle(ref, () => ({ ...props, curveLine, BMapLib }));
return null;
});

通过 ref 或者 hook 拿到底层对象 @zswcat

感谢大佬的回复,我还是有一些疑问

我参照官方样例使用的ref,代码如下

const BackUtilDisplay = (props: { imageBackg: ImageBackg }) => {
    const { imageBackg } = props

    const groundRef = (props: any) => {
        if (props && props.groundOverlay) {
            console.log('groundOverlay:', props.groundOverlay);
        }
    }

    return (
        /** @ts-ignore */
        <GroundOverlay bounds={new BMap.Bounds(imageBackg.sw, imageBackg.ne)} imageURL={imageBackg.src}
            ref={groundRef}
            opacity={imageBackg.opacity}
            displayOnMinLevel={4}
            displayOnMaxLevel={9}
        />
    )
}

前端打印到的数据如下
image
求问我应该如何改层级

@zswcat map 实例对象不是拿到了,你想咋改就咋改哦

@zswcat map 实例对象不是拿到了,你想咋改就咋改哦

我通过里边ca拿到了div,改了zIndex,丑陋的实现了。但是有个问题,是必须点击一次地图,才会生效

@zswcat map 实例对象不是拿到了,你想咋改就咋改哦

我通过里边ca拿到了div,改了zIndex,丑陋的实现了。但是有个问题,是必须点击一次地图,才会生效

已经解决,加了个延迟500ms

目前看GroundOverlay是在折线、marker这些上层的,如何改到底层,目前看没有暴露方法出来。求问