如何在 React-Leaflet 地图上向 GeoJson 形状添加图案?
How to add pattern to GeoJson shape on a React-Leaflet map?
我正在使用 React-Leaflet to display a Leaflet.js map. I use React-Leaflet GeoJSON (source here) 在地图上显示多边形图层。
虽然我可以改变多边形填充 (fillOpacity
) 的不透明度,但我找不到用图案(例如跳棋、条纹等)填充多边形的选项
我找到了一个支持向 Leaflet.js
形状添加填充图案的项目 (Leaflet.pattern),但它尚未适用于 React-Leaflet
。
所以我的问题是:如何向 React-Leaflet
形状添加图案,或调整 Leaflet.pattern
以与 React-Leaflet
一起使用? (对于后者,关于如何创建自定义 React-Leaflet
组件的说明是 here,但我不知道如何为这种情况做 - 它似乎比平常更复杂)
看看section in the docs about extending react-leaflet
如果您使用的是 react-leaflet v1,您可以直接扩展 react-leaflet 的 GeoJSON class。如果您使用的是 v2,则需要扩展 Path class instead. To understand why that's necessary take a look at this issue.
一旦您确定要扩展哪个 class,您的大部分更改可能需要发生在 createLeafletElement
函数中,也许还有 updateLeafletElement
函数。
我正在使用 React-Leaflet to display a Leaflet.js map. I use React-Leaflet GeoJSON (source here) 在地图上显示多边形图层。
虽然我可以改变多边形填充 (fillOpacity
) 的不透明度,但我找不到用图案(例如跳棋、条纹等)填充多边形的选项
我找到了一个支持向 Leaflet.js
形状添加填充图案的项目 (Leaflet.pattern),但它尚未适用于 React-Leaflet
。
所以我的问题是:如何向 React-Leaflet
形状添加图案,或调整 Leaflet.pattern
以与 React-Leaflet
一起使用? (对于后者,关于如何创建自定义 React-Leaflet
组件的说明是 here,但我不知道如何为这种情况做 - 它似乎比平常更复杂)
看看section in the docs about extending react-leaflet
如果您使用的是 react-leaflet v1,您可以直接扩展 react-leaflet 的 GeoJSON class。如果您使用的是 v2,则需要扩展 Path class instead. To understand why that's necessary take a look at this issue.
一旦您确定要扩展哪个 class,您的大部分更改可能需要发生在 createLeafletElement
函数中,也许还有 updateLeafletElement
函数。