react-leaflet 相关问题

Leaflet地图的React组件。

useLeafletContext() 只能在 <MapContainer>

我正在使用react-leaflet和react-leaflet-markercluster将React中的leaflet-map转换为hook。除了使用 MarkerCluster 之外,一切都很完美

回答 6 投票 0

未捕获错误:未提供上下文:useLeafletContext() 只能在 <MapContainer>

我正在使用react-leaflet,并添加了一个带有事件处理程序的标记,单击即可缩放到该标记,但是当我尝试使用 const map=useMap() 时,我得到的只是这个错误 => : 未捕获的错误:无续...

回答 4 投票 0

如何在react-传单中将弹出窗口添加到WMS层

我使用react-leaflet来显示WMS层 我使用 geoserver url 来获取...

回答 3 投票 0

测试 React Leaflet 时的地图大小

我正在尝试测试自定义的反应传单组件。它抓取地图元素并使用过滤器来获取当前缩放级别下可见的元素数量: const 可见 = allPoints.filter(p ...

回答 1 投票 0

以像素为单位移动中心地图

我有一张带有标记的反应传单地图。当我单击任何标记时,它会居中,并打开一个弹出窗口。这个弹出窗口的高度为 300px,这就是为什么我想移动地图的中心 -

回答 1 投票 0

地图仅在本地主机中呈现 - 在应用程序构建过程后不显示

我正在开发一个 React 应用程序,它有两个地图(一个传单+ESRI 地图,另一个是 Maptiler)。我已经获得了两者的 API 密钥,并且它在本地主机环境中正确呈现。 哈...

回答 1 投票 0

React Leaflet 在生产中未显示地图图块

我有以下组件在 React 应用程序中显示传单地图。在开发中一切正常,但在生产中,地图没有显示,它只是空白。标记渲染,但有...

回答 2 投票 0

React-Leaflet,根据对象数组改变缩放和位置

所以这是我的MapComponent,我添加了逻辑,其中在搜索栏中输入的任何内容都会显示数组中的学校,我想做的是添加一些缩放和更改位置...

回答 1 投票 0

为什么L.vectorGrid.protobuf返回未定义?

我在React、Leaflet 和react-leaflet 中使用。 为了发布问题而随机的东西:Leaflet 是领先的开源 JavaScript 库,用于移动友好的交互式地图。称重只是...

回答 1 投票 0

传单地图渲染

我的地图无法完全打开,谁能帮我解决这个问题吗?在此输入图像描述 我尝试重新创建代码并再次安装它,我尝试从网站本身获取代码,但它...

回答 1 投票 0

React-Leaflet-js 中的 MapContainer 中的中心不会更新

我最近开始使用React.js,并且正在使用React-Leaflet-js 开发一个项目。我的问题是,每当

回答 1 投票 0

如何从react-leaflet调用getFeatureInfo?

我有来自 github 的示例如何添加 wms 层: https://github.com/PaulLeCam/react-leaflet/blob/master/example/components/wms-tile-layer.js 但是如何从 wms 层点击时获取FeatureInfo?

回答 3 投票 0

LeafLet 在 Next JS 13 上的实现

我尝试在 Next JS 13.0.1 项目中实现 LeafLet 地图组件,但地图组件的渲染出现问题。 第一次加载地图组件时,出现这样的错误:

回答 4 投票 0

react传单模块解析失败:意外的令牌(10:39)

编译失败。 ./node_modules/@react-leaflet/core/lib/path.js 10:39 模块解析失败:意外的标记 (10:39) 您可能需要适当的加载程序来处理此文件类型。 | useEffect(有趣...

回答 2 投票 0

如何使用 React Leaflet 使用不是 <MapContainer> 子组件的按钮访问传单功能?

我有一个基本的 React 应用程序,用户可以单击 ,地图将缩放到所选标记,这将按预期工作: 函数 MyMap() { 我有一个基本的 React 应用程序,用户可以单击 <Marker>,地图将缩放到所选标记,这将按预期工作: function MyMap() { <MapContainer className="map" center = {[40, 10]} zoom = {10} zoomControl = {false} > <Markers> const map = useMap(); loc.map(loc => { return ( <Marker key={loc.properties.id} position={[loc.properties.y, loc.properties.x]} eventHandlers={{ click: () => { map.setView([loc.properties.y, loc.properties.x], 16) } }}> </Marker> ) }) </Markers> </MapContainer> } 现在我想做的是复制 map.setView() 功能以在按钮单击上工作。该按钮位于地图旁边的侧面板中,并且不是 <MapContainer> 的子按钮。每个 <Marker> 在侧面板上都有一个相应的按钮。 主要应用程序代码如下所示: function App() { <SidePanel> <Button /> </SidePanel> <MyMap /> } 有没有一种方法可以轻松地从 map.setView() 事件处理程序访问 <Marker> 函数并在侧面板中的 <Button> 上使用它? 您可能只想在按钮组件中创建一个函数,然后将该函数向下传递到定义映射变量的位置,然后在子组件的主体中调用该函数,而不是尝试访问事件处理程序,你可以调用map()函数。 如果您可以在 MapContainer 外部访问您的位置,则 MapContainer 上有一个名为 whenCreated 的道具,它返回地图。 您可以在 MapContainer 之外使用它。 const [map, setMap] = useState(null); const loc = []; <MapContainer whenCreated={setMap}> <Markers locations={loc} /> </MapContainer> <SidePanel> {loc.map((loc, index) => {/* Render button and add use map saved in state to attach click handler */})} </SidePanel> 从最新版本的react-leaflet(我相信是4.0+)开始,我们可以使用ref代替whenCreated,即: const ParentComponent = () => { const [map, setMap] = useState(null) return ( <MapContainer ref={setMap} /> ... </MapContainer> ) } 我们可以使用 map 以及其他所有相关功能。

回答 3 投票 0

react 传单测量/标尺插件

我需要一个用于 React Leaflet 应用程序的标尺,但是,我能找到的只是列出的普通传单插件 https://leafletjs.com/plugins.html。 我试图将它们全部包含在我的应用程序中,但每一个罪恶......

回答 3 投票 0

React-Leaflet 总是使用“MouseMove”重绘地图

我想在鼠标在我的 React 应用程序中移动时显示地理坐标。我注意到,通过“Mousemove”,地图会重复重绘所有数量较多的对象。我怎样才能...

回答 1 投票 0

React leaflet 热图图层 v3 缩放时的更新问题

我在移动设备上捏合缩放时遇到了react-leaflet-heatmap-layer-v3的更新问题,如图所示。如何相应地更新热图图层? 我希望将热图图层更新为地图

回答 1 投票 0

React Leaflet Geojson 工具提示。如何禁用单击或拖动时的黑色边框?

我对图书馆传单有疑问。我有大量 JSON 数据,它呈现并显示不同地区的边界。 我在 GeoJSon 中添加了一个工具提示,它显示了该地区的名称。但是什么...

回答 3 投票 0

渲染器在反应传单中折线的 PathOptions 中不起作用

我正在尝试将渲染器属性添加到 PathOptions 中以绘制折线,下面是它的代码: 我正在尝试将渲染器属性添加到 PathOptions 中以绘制折线,这里是它的代码: <Polyline pathOptions={{ renderer: canvasRenderer, color: "Black", smoothFactor: 1, opacity: 1, weight: 3, }} positions={[51.505, -0.09],[51.51, -0.1],[51.51, -0.12],} eventHandlers={{ contextmenu(e) { //some function goes here. }, }} > const canvasRenderer = L.canvas({ tolerance: 5, }); 除了 canvasRenderer 所有其他选项均适用于 Polyline。 如何使用 renderer 中的 PathOption 属性? 在react-leaflet中,renderer中的PathOptions属性用于指定路径的渲染器,但它可能不适用于所有渲染器,特别是在某些情况下。如果 renderer 属性未按预期工作,您可以尝试以下操作: 默认渲染器:如果想使用默认渲染器,则不需要在renderer中指定pathOptions属性。默认情况下,它使用 SVG 渲染器,这在大多数情况下都可以正常工作。 <Polyline pathOptions={{ color: "Black", smoothFactor: 1, opacity: 1, weight: 3, }} positions={[ [51.505, -0.09], [51.51, -0.1], [51.51, -0.12], ]} eventHandlers={{ contextmenu(e) { // some function goes here. }, }} /> 检查依赖项:确保您已安装所需的依赖项。自定义渲染器(例如 canvas 渲染器)可能需要额外的包才能正常工作。确保您已安装任何必要的软件包。 自定义渲染器:如果您想使用像canvas渲染器这样的自定义渲染器,则应先定义canvasRenderer变量,然后再在pathOptions中使用它。您的代码似乎已正确定义 canvasRenderer。 const canvasRenderer = L.canvas({ tolerance: 5, }); // ... <Polyline pathOptions={{ renderer: canvasRenderer, color: "Black", smoothFactor: 1, opacity: 1, weight: 3, }} positions={[ [51.505, -0.09], [51.51, -0.1], [51.51, -0.12], ]} eventHandlers={{ contextmenu(e) { // some function goes here. }, }} /> 渲染器兼容性:请注意,并非所有渲染器都与所有功能完全兼容。根据您选择的渲染器,某些功能可能无法按预期工作或不受支持。确保您使用的渲染器与您要使用的特定功能兼容。 如果您已按照这些步骤操作,但仍然遇到问题,您可能需要查阅 react-leaflet 的文档以及您正在使用的特定渲染器,以了解任何其他配置或故障排除步骤。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.