【发布时间】:2019-05-26 23:32:16
【问题描述】:
我正在使用 Vuelayers 库开发一个网络地图应用程序,该库是 具有 OpenLayers 功能的网络地图 Vue 组件。
我的模板中有以下代码:
<vl-map @singleclick="hideOverlay" @postcompose="onMapPostCompose"
:load-tiles-while-animating="true" ref="map"
:load-tiles-while-interacting="true" data-projection="EPSG:4326"
style="height: 900px" @mounted="onMapMounted">
....
<component v-for="layer in layers" :ref="layer.id" overlay
:is="layer.cmp"
:key="layer.id" v-bind="layer">
<component :is="layer.source.cmp" v-if="layer.visible" v-bind="layer.source">
</component>
</component>
....
</vl-map>
在数据对象中我有以下属性:
layers: [
{
id: 'sections',
title: 'Sections',
cmp: 'vl-layer-tile',
visible: true,
source: {
cmp: 'vl-source-wms',
url: 'http://localhost:8080/geoserver/sager/wms',
layers: 'sections',
tiled: true,
format: 'image/png',
serverType: 'geoserver',
},
},
....
]
那么当我点击它时如何获取图层属性呢?知道vl-tile-layer 没有提到的@click 事件here。
【问题讨论】:
-
你不应该避免v-if with v-for吗?
-
@Andrew1325 不是问题,这工作正常,但我找不到与 WMS 层交互的方法
-
是的,我知道,只是说。这是一个棘手的问题。
-
你见过this吗?
-
我建议将一个包含依赖项的代码框和一个简单的示例放在一起来重现问题。
标签: javascript vue.js openlayers geoserver vuelayers