【发布时间】:2020-06-25 16:40:31
【问题描述】:
这是我第一次使用 Leaflet,所以在尝试理解文档时我有点困惑。我正在尝试使用 ImageOverlay 组件创建带有 react-leaflet 的自定义地图。我正在努力使 Map 组件大小与我的图像大小相同。恐怕我不太了解bounds,但我认为这就是我应该在这里使用的。我尝试使用getBounds() 来查看是否可以获得我需要的界限,但我不认为我使用refs 的实现是正确的。到目前为止,这是我的代码:
import React, { useState, useRef, useEffect } from "react";
import { Map, ImageOverlay } from "react-leaflet";
import { CRS, getBounds } from "leaflet";
export default () => {
const [bounds, setBounds] = useState([]);
const mapRef = useRef(null);
useEffect(() => {
setBounds(mapRef.current.leafElement.getBounds());
}, []);
return (
<Map
center={initialPos}
zoom={0}
ref={mapRef}
minZoom={0}
crs={CRS.Simple}
>
<ImageOverlay url="https://i.imgur.com/Ion6X7C.jpg" />
</Map>
);
};
在useEffect 中记录新的bounds,我得到一个如下所示的对象:
LatLngBounds {
_southWest: LatLng {lat: -110, lng: -95},
_northEast: LatLng {lat: 290, lng: 565}
}
但我仍然收到以下错误:
Cannot read property 'lat' of undefined
我参考了 this question 和 this question 来帮助我弄清楚如何设置边界以使地图适合我的图像大小,但一直在努力将它们转换为功能组件
【问题讨论】:
标签: javascript reactjs leaflet react-leaflet