38 mars3d 对接地图图层 绘制点线面员

前言

这里主要是展示一下 mars3d 的一个基础的使用 

主要是设计 接入地图服务器的 卫星地图, 普通的二维地图, 增加地区标记 

基础绘制 点线面园 等等

测试用例

<template>
  <div style="width: 1920px; height:1080px;">
    <div class="mars3dClass" id="mars3dClass"></div>
  </div>

</template>

<script>

  import * as mars3d from "mars3d";

  const Cesium = mars3d.Cesium;

  export default {
    name: "mars3dMapUsage",
    components: {},
    props: {},
    data() {
      return {
        map: null,
        tdtImgLayer: null,
        labelLayer: null,
        overlay: null,
        mapOptions:{
          scene: {
            center: {"lat":31.376588,"lng":104.803391,"alt":539.5,"heading":273.6,"pitch":-40.1}
          },
          basemaps:[
            {
              type:'group',
              layers:[
                {
                  name:'3dtiles地图',
                  type:'xyz',
                  url:'/terrainresource/scmf_0to19/{z}/{x}/{y}.png',
                }
              ],
              show:true
            },
          ]
        },
      };
    },
    computed: {},
    watch: {},
    created() {

    },
    mounted() {

      this.initMap()

      // this.test01AddBoundsLayer()
      // this.test02AddDtImageLayer()
      // this.test03AddDtTDLayer()
      // this.test04AddDtLabelLayer()
      this.test11AddTerrainLayer()

      // this.test05AddImageLayer()
      // this.test06AddCircleLayer([104.065735, 30.759462])
      // this.test06AddCircleLayer([104.065735, 30.559462], "red")
      // this.test07AddBoxLayer()
      // this.test08AddCylinderLayer()
      // this.test09AddPolylineVolumeLayer()

    },
    methods: {
      initMap() {
        this.map = new mars3d.Map("mars3dClass")
        this.map.setCameraView({lng: 104.065735, lat: 30.659462, alt: 44160})
      },
      test01AddBoundsLayer() {

      },
      test02AddDtImageLayer() {
        const tdtImgLayer = new mars3d.layer.TdtLayer({
          url: "/tianditu/servlet/GoogleSatelliteMap?x={x}&y={y}&z={z}",
          zIndex: 1,
          crs: mars3d.CRS.EPSG4490
        });
        this.map.addLayer(tdtImgLayer);
      },
      test03AddDtTDLayer() {
        const tdtImgLayer = new mars3d.layer.TdtLayer({
          url: "/tianditu/servlet/GoogleTDMap?x={x}&y={y}&z={z}",
          zIndex: 1,
          crs: mars3d.CRS.EPSG4490
        });
        this.map.addLayer(tdtImgLayer);
      },
      test04AddDtLabelLayer() {
        const labelLayer = new mars3d.layer.TdtLayer({
          url: "/tianditu/servlet/GoogleTransparentMap?x={x}&y={y}&z={z}",
          zIndex: 1,
          crs: mars3d.CRS.EPSG4490
        });
        this.map.addLayer(labelLayer);
      },
      test05AddImageLayer() {
        const graphicLayer = new mars3d.layer.GraphicLayer({zIndex: 20});
        this.map.addLayer(graphicLayer);

        const graphic = new mars3d.graphic.BillboardEntity({
          name: "贴地图标",
          position: [104.065735, 30.659462, 1000],
          style: {
            image: "/img/theme/desktop/17.jpg",
            scale: 1,
            horizontalOrigin: mars3d.Cesium.HorizontalOrigin.CENTER,
            verticalOrigin: mars3d.Cesium.VerticalOrigin.BOTTOM,
            clampToGround: true,
          },
          attr: {remark: "示例3"},
        });
        graphicLayer.addGraphic(graphic);
      },
      test06AddCircleLayer(coord, color) {
        const graphicLayer = new mars3d.layer.GraphicLayer({zIndex: 20});
        this.map.addLayer(graphicLayer);

        const graphic = new mars3d.graphic.CircleEntity({
          position: [coord[0], coord[1], 1000],
          style: {
            radius: 1800.0,
            color: color,
            opacity: 1,
            outline: true,
            outlineWidth: 3,
            outlineColor: color,
            clampToGround: true,
          },
          popup: "直接传参的popup",
          attr: { remark: "示例6" },
        });
        graphicLayer.addGraphic(graphic);
      },
      test07AddBoxLayer() {
        const graphicLayer = new mars3d.layer.GraphicLayer({zIndex: 20});
        this.map.addLayer(graphicLayer);

        const graphic = new mars3d.graphic.BoxEntity({
          position: new mars3d.LngLatPoint(104.165735, 30.759462, 1000),
          style: {
            dimensions: new Cesium.Cartesian3(2000.0, 2000.0, 2000.0),
            fill: true,
            color: "#00ffff",
            opacity: 0.9,
            heading: 45,
            roll: 45,
            pitch: 0,
          },
          attr: { remark: "示例5" },
        });
        graphicLayer.addGraphic(graphic);
      },
      test08AddCylinderLayer() {
        const graphicLayer = new mars3d.layer.GraphicLayer({zIndex: 20});
        this.map.addLayer(graphicLayer);

        const graphic = new mars3d.graphic.CylinderEntity({
          position: [104.265735, 30.759462, 1000],
          style: {
            length: 3000.0,
            topRadius: 0.0,
            bottomRadius: 1300.0,
            color: "#00FFFF",
            opacity: 0.7,
          },
          popup: "直接传参的popup",
          attr: { remark: "示例7" },
        });
        graphicLayer.addGraphic(graphic);
      },
      test09AddPolylineVolumeLayer() {
        const graphicLayer = new mars3d.layer.GraphicLayer({zIndex: 20});
        this.map.addLayer(graphicLayer);

        const graphic = new mars3d.graphic.PolylineVolumeEntity({
          positions: [
            [103.965735, 30.759462, 1000],
            [103.975735, 30.81, 1000],
            [103.985735, 30.79, 1000],
          ],
          style: {
            shape: "pipeline",
            radius: 80,
            color: "#3388ff",
            opacity: 0.9,
          },
          attr: { remark: "示例11" },
        });
        graphicLayer.addGraphic(graphic);
      },
      test10SetCenter(coord, color) {
        this.map.setCameraView(coord);
      },
      test11AddTerrainLayer() {
        this.map.setCameraView({lng: 104.803391, lat: 31.376588, alt: 539.5,heading:273.6,pitch:-40.1});

        const layer = new mars3d.layer.XyzLayer({
          url: "/terrainresource/xxx/{z}/{x}/{y}.png",
          zIndex: 1,
        });
        this.map.addLayer(layer);
      }

    }
  };
</script>

<style lang="scss">
  .mars3dMapUsageClass {

  }

  .overdelay1 {
    position: absolute;
    border: 1px greenyellow solid;
    width: 200px;
    height: 50px;
  }
</style>

绘制卫星地图 + 地图标注

执行效果如下 

二维地图 + 地图标注

执行效果如下 

绘制点线面园 

执行效果如下 

卫星地图 + 地图标注 + 点线面园 

执行效果如下 

地形资源页面

执行效果如下 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/482774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云原生:如何熟悉一个系统

原文地址:https://mp.weixin.qq.com/s/J8eK-qRMkmHEQZ_dVts9aQ?poc_tokenHMA-_mWjfcDmGVW6hXX1xEDDvuJPE3pL9-8uSlyY 导读&#xff1a;本文总结了熟悉系统主要分三部分&#xff1a;业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题&#xff0c;这些问题…

Matlab|基于条件风险价值CVaR的微网动态定价与调度策略

目录 1 主要内容 模型示意图 电能交易流程 模型亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序复现文章《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》&#xff0c;建立基于主从博弈的考虑…

神级工具之git (一): git 基操

一切都从&#xff1a;Git User Manual开始&#xff0c;或者中文版的Git中文手册 核心概念 工作区 工作区我们可见的&#xff0c;可以进行修改的目录树。我们可以在目录树中进行文件的查看&#xff0c;修改。通常我们会使用一个神级编辑器Vim。我给她取了个名字&#xff0c;就…

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-子串分值和

solution1&#xff08;通过40%&#xff09; 依次求子串并统计出现过的字母个数 #include<iostream> #include<string> #include<set> using namespace std; int main(){string s, subs;cin >> s;int len s.size(), ans 0;for(int j 1; j < len…

Oracle Data Guard部署

Oracle的主备DG搭建 1. 修改主机名,同步时间 主库IP&#xff1a;192.168.100.137 备库IP&#xff1a;192.168.100.138配置主机名(主库) Hostname zygjpdb vim /etc/hosts 192.168.100.137 zygjpdb 192.168.100.138 zygjsdbvim /etc/sysconfig/network HOSTNAMEzygjpdb ------…

MySQL 排序的那些事儿

书接上回 上次发了几张图&#xff0c;给了几个MySQL Explain的场景&#xff0c;链接在这儿&#xff1a;你是不是MySQL老司机&#xff1f;来看看这些explain结果你能解释吗&#xff1f;MySQL 夺命6连问 我们依次来分析下这6个问题。 在分析之前&#xff0c;我们先来了解一下M…

(附源码)基于Spring Boot和Vue的智能订餐与外卖系统设计与实现

1. 引言 这部分通常包含了研究背景、研究意义、国内外研究现状、本文研究内容以及论文结构安排。 研究背景&#xff1a;介绍当前外卖市场的快速发展&#xff0c;以及智能订餐系统对改善人们生活的影响。研究意义&#xff1a;强调这类系统在现代生活中的作用和开发的创新点。国…

【JavaEE初阶系列】——带你了解volatile关键字以及wait()和notify()两方法背后的原理

目录 &#x1f6a9;volatile关键字 &#x1f388;volatile 不保证原子性 &#x1f388;synchronized 也能保证内存可见性 &#x1f388;Volatile与Synchronized比较 &#x1f6a9;wait和notify &#x1f388;wait()方法 &#x1f4bb;wait(参数)方法 &#x1f388;noti…

关于JAVA8的Lambda表达式

1. 水在前面 这个礼拜忽然心血来潮把Lambda表达式学习了一遍&#xff0c;发现这玩意跟原来想象的好像不是一个东西&#xff0c;写个学习心得供以后复习用。还是那句话&#xff0c;这篇水文不能让你完全掌握&#xff0c;只是用来给我自己温习用的&#xff0c;或者也可以作为小伙…

jmeter使用方法---自动化测试

HTTP信息头管理器 一个http请求会发送请求到服务器&#xff0c;请求里面包含&#xff1a;请求头、请求正文、请求体&#xff0c;请求头就是信息头Authorization头的主要用作http协议的认证。 Authorization的作用是当客户端访问受口令保护时&#xff0c;服务器端会发送401状态…

JMeter并发工具的使用

视频地址&#xff1a;Jmeter安装教程01_Jmeter之安装以及环境变量配置_哔哩哔哩_bilibili 一、JMeter是什么 JMeter是一款免安装包&#xff0c;官网下载好后直接解压缩并配置好环境变量就可以使用。 环境变量配置可参考&#xff1a;https://www.cnblogs.com/liulinghua90/p/…

阿里云效流水线—发布公用jar到Maven私仓

后端项目发布 1.选择流水线 2.新建流水线 3.选择模板 4.选择代码仓库 5.调整构建命令 添加mvn install 重新构建项目 6.添加镜像 在wms-app目录下新建Dockerfile文件(Dockerfile文件名中的D一定要是大写的&#xff09;文件&#xff0c;重新推送项目 #基础镜像 FROM openjd…

windows libcurl异常排查 杀毒与防火墙拦截

今天遇到一个机器&#xff0c; libcurl库访问报错&#xff0c;6 解析主机异常 后来下载了一个curl客户端放到机器上&#xff0c;访问报 curl getaddrinfo thread failed to start查找一些资料&#xff0c;说是杀毒软件对网络做了限制 后来通过允许程序通过网络防火墙解决此问…

C# WPF编程-控件

C# WPF编程-控件 概述WPF控件类别包括以下控件&#xff1a;背景画刷和前景画刷字体文本装饰和排版字体继承字体替换字体嵌入文本格式化模式鼠标光标 内容控件Label&#xff08;标签&#xff09;Button&#xff08;按钮&#xff09; 概述 在WPF领域&#xff0c;控件通常被描述为…

HTML5和CSS3笔记

一&#xff1a;网页结构(html)&#xff1a; 1.1&#xff1a;页面结构&#xff1a; 1.2&#xff1a;标签类型&#xff1a; 1.2.1&#xff1a;块标签&#xff1a; 1.2.2&#xff1a;行内标签&#xff1a; 1.2.3&#xff1a;行内块标签&#xff1a; 1.2.4&#xff1a;块标签与行…

CI/CI实战-jenkis结合gitlab 4

实时触发 安装gitlab插件 配置项目触发器 生成令牌并保存 配置gitlab 测试推送 gitlab的实时触发 添加jenkins节点 在jenkins节点上安装docker-ce 新建节点server3 安装git和jdx 在jenkins配置管理中添加节点并配置从节点 关闭master节点的构建任务数

MySQL 8.0-索引- 不可见索引(invisible indexes)

概述 MySQL 8.0引入了不可见索引(invisible index)&#xff0c;这个在实际工作用还是用的到的&#xff0c;我觉得可以了解下。 在介绍不可见索引之前&#xff0c;我先来看下invisible index是个什么或者定义。 我们依然使用拆开来看&#xff0c;然后再把拆出来的词放到MySQL…

红桃写作方便吗 #学习方法#微信#微信

红桃写作是一个非常好用的论文写作工具&#xff0c;它不仅方便快捷&#xff0c;而且非常靠谱&#xff0c;能够帮助用户轻松完成论文写作任务。不论是学生还是专业人士&#xff0c;都可以通过红桃写作轻松地完成论文的写作工作&#xff0c;大大提高工作效率。 首先&#xff0c;红…

对话悠易科技蔡芳:品牌逐渐回归核心能力建设,布局和构建自己的流量阵地

关于SaaS模式在中国的发展&#xff0c;网上出现多种声音。Marteker近期采访了一些行业专家&#xff0c;围绕SaaS模式以及Martech在中国的发展提出独特观点。悠易科技副总裁蔡芳认为&#xff0c;中国目前存在SaaS的应用场景与客户需求&#xff0c;用户的应用能力也在提升&#x…

工作中常用到的Linux命令

系统&#xff0c;用户信息操作相关命令 查看主机ip地址 ifconfig 获取用户信息 id 修改用户密码 passwd 查看链接用户 who 创建新用户账号 useradd 删除用户账号 userdel 修改用户账号的属性 usermod 查看系统发行版本 cat /proc/version 说明适用于所有版本。…