【openlayers】ol3切换图层源

在实际运用场场景,有时我们需要2个不同的图层切换的对比,比如百度地图的普通图层和卫星图层

在ol3里实现这个功能也是很简单,使用 setSource() 即可

let baseLayer = map.getLayers().item(0);
baseLayer.setSource(
    new ol.source.XYZ({
        url: ''//对应的卫星图层地图包路径
    })
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基本的Vue3组件,用于切换OpenLayers矢量图层: ```vue <template> <div class="map-layer-switcher"> <select v-model="selectedLayer" @change="switchLayer"> <option v-for="(layer, index) in layers" :key="index" :value="layer">{{ layer.name }}</option> </select> </div> </template> <script> import { ref } from 'vue'; import { VectorLayer } from 'ol/layer'; import { Vector } from 'ol/source'; export default { name: 'MapLayerSwitcher', props: { map: { type: Object, required: true, }, layers: { type: Array, required: true, }, }, setup(props) { const selectedLayer = ref(props.layers[0]); function switchLayer() { const layer = selectedLayer.value; const olLayer = new VectorLayer({ source: new Vector({ features: layer.features }), style: layer.style, }); props.map.getLayers().forEach((l) => { if (l instanceof VectorLayer) { props.map.removeLayer(l); } }); props.map.addLayer(olLayer); } return { selectedLayer, switchLayer, }; }, }; </script> <style> .map-layer-switcher select { margin: 10px; padding: 5px; border-radius: 5px; background-color: #fff; color: #333; font-size: 16px; } </style> ``` 此组件需要传递两个属性:`map` 和 `layers`。 `map` 是一个OpenLayers地图实例,`layers` 是一个包含多个矢量图层的数组。每个图层应该包含一个 `name` 和 `features` 属性,以及一个可选的 `style` 属性。 当用户选择一个图层时,`switchLayer` 函数会创建一个新的OpenLayers矢量图层,并使用选定的图层的 `features` 和 `style` 属性来初始化该图层。然后,它会删除所有旧的矢量图层,并将新图层添加到地图中。 在模板中,我们使用一个下拉菜单来展示可用的图层,并将用户选择的图层绑定到 `selectedLayer` 变量上。当用户选择一个不同的图层时,`switchLayer` 函数将自动调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值