有没有办法扩展layermenu?
对于 featurelayers ,用户应该可以点击图片或按钮来显示/隐藏该特定图层的功能文字。
显示或隐藏功能的文字由当前' showfeaturetext ''' showfeaturetext '''''层的属性。
目前的代码可以吗?
亲切的问候,
萨姆
答案 0 :(得分:0)
如果要创建自定义guide4you构建(请参阅https://github.com/KlausBenndorf/guide4you#how-to-install-and-build-guide4you和https://github.com/KlausBenndorf/guide4you/wiki/How-to-create-an-own-guide4you-module)并覆盖buildLayerButton方法,则可以扩展layerselector。遗憾的是buildLayerButton没有返回按钮,这会使它更直接。
export class MyLayerSelector extends LayerSelector {
buildLayerButton (layer, $target) {
super.buildLayerButton(layer, $target)
$target.children(':last-child') // <- this should be your button as a jquery object
}
}
答案 1 :(得分:0)
我一直在努力尝试这一点。
这些是我的步骤:
内容:
从'jquery'
导入$从'./LayerSelector'
导入{LayerSelector}导出类MyLayerSelector扩展了LayerSelector { buildLayerButton(layer,$ target){ super.buildLayerButton(layer,$ target) $ button = $ target.children(':last-child')//&lt; - 这应该是你的按钮作为jquery对象 } }
编辑entry.js。我添加了这一行:
从'../../ src / Controls / MyLayerSelector'
编辑entry.js。我还添加了这一行:
window.createG4U = function(target,clientConf = defaultClientConf,layerConf = defaultLayerConf){ return createG4UInternal(target,clientConf,layerConf,[ 新的MyLayerSelector() ]) }
NPM运行构建输出:
警告: ['./src/Controls/Control.js \ n当忽略大小写时,还有另一个名称相同的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能会导致意外行为。\ n如果有多个模块,则会出现模块如果预期有一个模块,则预期或使用相同的套管。', './src/controls/Control.js \ n当忽略大小写时,还有另一个名称相同的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能会导致意外行为。\ n如果需要多个模块,则为nnename模块如果预期有一个模块,则使用相同的套管。', './src/Controls/LayerSelector.js \ n当忽略大小写时,还有另一个名称相同的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能会导致意外行为。\ n如果需要多个模块,则为nnename模块如果预期有一个模块,则使用相同的套管。', './src/controls/LayerSelector.js \ n当忽略大小写时,还有另一个名称相同的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能会导致意外行为。\ n如果需要多个模块,则会出现模块如果预期有一个模块,则使用相同的套管。', './src/Controls/ControlLogicMixin.js \ n当忽略大小写时,还有另一个具有相同名称的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能导致意外行为。\ n如果需要多个模块,则为nnename模块如果预期有一个模块,则使用相同的套管。', './src/controls/ControlLogicMixin.js \ n当忽略大小写时,还有另一个名称相同的模块。\ n当在具有其他大小写语义的文件系统上进行编译时,这可能会导致意外行为。\ n如果需要多个模块,则为nnename模块如果预计有一个模块,则使用相同的套管。 ]
当我忽略这些警告时,我收到一个javascript错误: 未捕获的TypeError:无法读取未定义的属性“selectL10N”