这一块的东西非常简单,基于上一步的继续操作

关键代码,当然对应的对象需要进行相关的引入,为了方便理解,把背景色和边框放在了一起

//填充颜色
style:new Style({
fill:new Fill({
color: "rgba(255, 0, 0, 0.5)",
})
})
//边框
stroke: new Stroke({
color: "black",
width: 1,
})

效果

完整代码

<script setup>
import { onMounted, reactive, ref } from "vue";
import { Map, View } from "ol";
import TileLayer from "ol/layer/Tile";
import { OSM, XYZ } from "ol/source";
import { fromLonLat } from "ol/proj";
import VectorLayer from "ol/layer/Vector";
import VectorSource from "ol/source/Vector";
import GeoJSON from "ol/format/GeoJSON";
import Style from "ol/style/Style";
import Fill from "ol/style/Fill";
import Stroke from "ol/style/Stroke";
defineProps({
  msg: String,
});
let map = reactive("");
let view = reactive("");
let count=ref(0)
onMounted(() => {
  initMap();
});
let initMap = () => {
  (view = new View({
    center: [114.305469, 30.592876],
    zoom: 5,
    projection: "EPSG:4326",
  })),
    (map = new Map({
      target: "map", //挂载视图的容器
      layers: [
        //瓦片图层source第三方,或者自带的,地图的底层
        new TileLayer({
          // source: new OSM(),//内置的国外地址,需要代理
          source: new XYZ({
            url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7",
          }), //国内第三方数据源
        }),
        // 矢量图层
        new VectorLayer({
          source: new VectorSource({
            url: "https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json",
            format: new GeoJSON(),
          }),
          //填充颜色
          style: new Style({
            fill: new Fill({
              color: "rgba(255, 0, 0, 0.5)",
            }),
            stroke: new Stroke({
              color: "black",
              width: 1,
            })
          }),
        }),
      ],
      //视图
      view: view,
    }));
  map
    .getLayers()//获取所有图层
    .item(1)//获取矢量图层
    .getSource()
    .on("change", function () {
      // 获取图层的 features
      count=this.getFeatures().length
    });
};
let move = () => {
  // 设置北京的经纬度
  const beijing = [116.46, 39.92];
  const view = map.getView();
  view.animate({
    center: beijing,
    zoom: 10,
    projection: "EPSG:4356",
  });
};
</script>
<template>
  <div id="map">
    <div class="btns">
      <button @click="move">中国有{{ count }}个省份</button>
    </div>
  </div>
</template>
<style scoped>
.btns {
  display: flex;
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 999;
}
.btns div {
  width: 100px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}
.read-the-docs {
  color: #888;
}
#map {
  margin: 0;
  width: 100vw;
  height: 100vh;
}
</style>

前端学习openLayers配合vue3(修改地图样式)的更多相关文章

  1. 前端学习笔记——引入css文件、样式优先级

    CSS样式的引用方式有三种:行间样式表>内部样式表>外部样式表. 如果只有一种样式,那么优先级“由内到外 由近到远” 1.行间样式表--内联方式 内联方式指的是直接在 HTML 标签中的  ...

  2. 构建前端第5篇之---修改css样式的思路

    张艳涛写于2020-1-20 在页面元素布局的时候,在知道应该如何设置元素的属性的时候,可以依照如下思路,使用chrome浏览器,打开f12,找到对应的最近元素,看右侧对于的css样式窗口,调整修改数 ...

  3. OpenLayers 3 之 地图样式(ol.style)详解

    地图样式是由 style 类控制的,其包含了地图样式的方方面面,例如,填充色.图标样式.图片样式.规则图形样式.边界样式.文字样式等,样式一般针对矢量要素图层. 矢量图层样式可以事先写好,写成静态的, ...

  4. MFC学习 修改窗口样式

    1. 在PreCreateWindow中可用CREATESTRUCT cs, cs.lpszName修改窗口标题, cs.lpszClass = AfxRegisterWndClass 修改图标与样式 ...

  5. web前端学习笔记

    web前端学习笔记(CSS盒子的定位) 相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准 ...

  6. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  7. 前端学习(八):CSS

    进击のpython ***** 前端学习--CSS 现在的互联网前端分为三层: HTML:超文本标记语言.从语义的角度描述页面结构 CSS:层叠样式表.从审美的角度负责页面样式 JS:Javascri ...

  8. web前端学习部落22群分享给需要前端练手项目

    前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...

  9. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  10. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

随机推荐

  1. Java基础综合项目(ATM系统)

    文章目录 1.ATM项目介绍 2.项目架构搭建.欢迎界面设计 3.开户功能实现 4.生成卡号 5.登录功能 6.展示用户操作界面 7.查询账户.退出 8.存款 9.取款 10.转账 11.修改密码 1 ...

  2. 部署包含Oracle数据源的项目

    这段时间在处理公司EAS的数据报表,需要通过ETL进行数据的抽取,当ETL都完成并在本地跑成功后,总以为万事大吉了,没想到部署到作业后,却一直无法成功,百度搜索了好多方法,跟着上面去操作还是一直报错, ...

  3. IDEA 2024.2.2 最新安装教程(附激活-2099年~)

    访问 IDEA 官网 下载 IDEA 2024.2.2 版本的安装包. 下载补丁https://pan.quark.cn/s/fcc23ab8cadf 检查 进入 IDEA 中后,点击菜单 Help ...

  4. C221027B

    B 抽 \(n\) 次卡, 连续 \(i\) 次没有抽中时, 第 \(i+1\) 次抽中的概率是 \(p_i\), 规定\(p_k=1\), 求期望抽中次数. 标签:矩阵加速递推, 动态规划. 暴力: ...

  5. 14-8 C++函数调用运算符

    目录 14.8.0 引入 函数对象 含有状态的函数对象 函数对象常做泛型算法实参 14.8.1 lambda是函数对象 表示没有捕获值的lambda的类 表示lambda及其捕获行为的类 14.8.2 ...

  6. Centos模板机配置

    icentos7标准化配置 挂载光盘 mkdir /media/cdrom mount /dev/sr0 /media/cdrom vi /etc/yum.repo.d/ 配置本地yum源 vim l ...

  7. debian大便系统配置国内软件源

    本例在debian:buster-slim docker镜像中实验通过 1.启动docker实例 docker run -it --name debian debian:buster-slim bas ...

  8. .NET操作Excel高效低内存的开源框架 - MiniExcel

    .Net平台上对Excel进行操作主要有两种方式.第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作:第二种,调用Excel的COM组件.两种方式各有特点. 今天给大家介绍第三 ...

  9. 【VMware VCF】通过备份的配置文件还原 SDDC Manager 组件。

    之前在这篇文章(使用 SFTP 服务器备份 VCF 核心组件的配置文件.)中配置并备份了 VCF 环境中 SDDC Manager 组件的配置文件,这篇文章接着这个主题,看看当 SDDC Manage ...

  10. 简单但实用,RTC时钟使用指南

    合宙Air201快速入门-RTC实时时钟使用示例- 本教程教你通过使用脚本代码,实现Air201内置RTC实时时钟同步时间.获取时间.设置时间等功能,可根据实际需求灵活应用. 我们先了解一些相关基础知 ...