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

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

//填充颜色
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的split方法的转义字符

    一.实例 我们都知道  String s="ad,dfjdlfs,df,s,dfl"; 执行 String re[]=s.split(",");     则re ...

  2. C语言常见概念

    目录 1.C语言是什么? 2.编译器的选择Clion 3.第一个C语言程序 4.main函数 5.printf和库函数 6.关键字介绍 7.字符和ASCII编码 8.转义字符 9.语句和语句分类 9. ...

  3. JS 本地存储 localStorage 操作总结

    现在前端做数据存储,跨页面传值,localStorage是一个很好的方式,以键值对的方式存储,也方便取值赋值,下面说一说使用方法和一些常见的使用技巧. 1.存值共有3种方式,localStorage相 ...

  4. [Flink/FlinkCDC] 实践总结:Flink 1.12.6 升级 Flink 1.15.4

    Flink DataStream/API 依赖模块的变化 版本变化 flink.version : 1.12.6 => 1.15.4 flink.connector.version : 1.12 ...

  5. linux下时间时区详解

    首先我们要明白,"时间"和"时区"是两个东西. 时间是指从某个时间点开始到另一个时间点经过的"长度",是"纵向"距离,一 ...

  6. 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案

    二.Spring Security默认认证流程及其优缺点 1.Spring Security默认认证流程总结 四.Spring Boot集成Spring Security之认证流程详细介绍了认证流程, ...

  7. 2.6 使用dd命令安装Linux系统

    面对大批量服务器的安装,人们往往热衷于选择"无人值守安装"的方式,而此方式需要对服务器进行过多的配置,并不适合初学者. 无人值守安装(Kickstart),又称全自动安装,其工作原 ...

  8. 推荐手绘工具神器Excalidraw素描草图风格白板,支持AI-开源免费

    推荐手绘工具神器Excalidraw素描草图风格白板,支持AI-开源免费 原创 IT软件部落 IT软件部落 Excalidraw 一个开源的虚拟手绘风格的白板,是一个很好的素描工具.它真的很容易使用, ...

  9. 鸿蒙开发Hvigor任务简介

    编译构建工具DevEco Hvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排.工程模型管理.配置管理等关键能力,提供专用于构建和测试应用的 ...

  10. (Redis基础教程之十二) 如何解决Redis中的故障

    介绍 Redis是一个开源的内存中键值数据存储.它带有几个命令,可以帮助您进行故障排除和调试.由于Redis具有内存中的键值存储的性质,因此其中许多命令都集中在内存管理上,但是还有一些其他命令对于概述 ...