gpt4 book ai didi

javascript - GeoJSON 的自定义传单渲染器

转载 作者:行者123 更新时间:2023-11-28 03:59:19 25 4
gpt4 key购买 nike

我想要以不同于 Leaflet 默认提供的方式呈现 GeoJSON。不幸的是,改变 style() 函数是不够的,因为我需要更好地控制正在创建的矢量图形。

这样做的惯用方法是什么?我认为我可以重用 src/layers/vector/SVG.js 中默认 SVG 渲染器的许多部分。不过,我只想将其替换为一个 GeoJSON 层/一个要素组。由于这些都不是从 Path 继承的,因此这似乎不可能。

我尝试以一种非常基本的方式扩展 SVG 类:

import {SVG} from 'leaflet/src/layer/vector/SVG'

export default class CustomSVG extends SVG {
_updatePoly (layer, closed) {
console.log('Custom renderer in action')
super._updatePoly(layer, closed)
}
}

然后在初始化Leaflet时将其设置为渲染器,但这会失败并出现TypeError: max2 is undefined(这是一个未处理的 promise 拒绝,源于我使用react-leaflet)。

我缺少什么?

最佳答案

我又看了一遍文档,好像漏掉了this bit about the GeoJSON options :

style: A Function defining the Path options for styling GeoJSON lines and polygons, called internally when data is added. The default value is to not override any defaults:

function (geoJsonFeature) {
return {}
}

另一方面,路径选项采用渲染器,我可以使用它来仅覆盖此特定 GeoJSON 层的渲染。希望这对其他人有帮助!

关于javascript - GeoJSON 的自定义传单渲染器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47269912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com