openlayers学习笔记demo练习之overlay(vue框架)

注意:该demo的示例代码基于vue开发,代码为一个vue组件
###地图overlay的基本使用

<template>
  <div>
    <div id="map"></div>
    <div id="overlay"><img :src="Logo" alt="示例锚点"/></div>
  </div>
</template>

<script>
  //导入依赖
  import 'ol/ol.css'
  import Map from 'ol/Map'
  import View from 'ol/View'
  import * as proj from 'ol/proj'
  import TileLayer from 'ol/layer/Tile'
  import OSM from 'ol/source/OSM'

  import Overlay from 'ol/Overlay'

  export default {
    name: "MapTest",
    data(){
      return {
        //地图相关参数
        map:null,
        view:null,
        layers:[],
        center:[120,30],
        Logo: require("../assets/images/Logo.png")
      }
    },
    mounted() {
      //首先创建地图
      this.view = new View({
        center:proj.transform([120,30],'EPSG:4326','EPSG:3857'),
        zoom:5
      })
      const oLayer = new TileLayer({
        source:new OSM
      })
      this.layers.push(oLayer)
      this.map = new Map({
        target:'map',
        view:this.view,
        layers:this.layers
      })
      //执行添加方法
      this.add()
    },
    methods:{
      add(){
        let pos = proj.transform([120, 30],'EPSG:4326','EPSG:3857')
        let marker = new Overlay({
          position: pos,//设置marker的位置,也可以通过overlay.setPosition方法来设置改变
          positioning: 'center-center',//选填参数,控制marker的相对位置
          element: document.getElementById('overlay'),
          stopEvent: false//选填参数,阻止默认事件行为
        })
        this.map.addOverlay(marker)
      }
    }
  }
</script>

<style scoped>
  #map {
    height: 400px;
  }
</style>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值