使用mars3d绘制矢量数据,页面中不显示

182 篇文章 2 订阅
164 篇文章 0 订阅
在Vue项目中集成mars3d,通过npm安装和webpack配置后,地图成功渲染。但在尝试绘制矢量数据时,由于地图中心未设置在矢量数据附近,导致图形无法显示。解决方案是调整地图配置的center选项或使用flyTo方法使地图自动飞至矢量数据位置。
摘要由CSDN通过智能技术生成

在vue中使用mars3d,尝试实现官方模板的示例。效果如下:

 

首先引入相关资源,使用npm安装

npm i mars3d -S
复制代码

webpack相关配置参考官方github vue.config.js。然后将官方提供的 vue3.0的map组件也拷贝到项目中 MarsMap

准备就绪开始实现功能。

<template>

<MarsMap :url="configUrl" map-key="test" @οnlοad="marsOnload" />

</template>

<script setup>

import { ref } from "vue"

import MarsMap from "@comp/MarsMap/index.vue"

import * as mars3d from "mars3d"

const Cesium = mars3d.Cesium

const marsOnload = map => {

}

</script>

此时地图已经成功渲染,接下来绘制矢量数据

const graphicLayer = new mars3d.layer.GraphicLayer()

map.addLayer(graphicLayer)

const graphic = new mars3d.graphic.LabelEntity({

position: new mars3d.LatLngPoint(116.1, 31.0, 1000),

style: {

text: "hello world",

font_size: 25,

font_family: "楷体",

color: "#003da6",

outline: true,

outlineColor: "#bfbfbf",

outlineWidth: 2,

horizontalOrigin: Cesium.HorizontalOrigin.CENTER,

verticalOrigin: Cesium.VerticalOrigin.BOTTOM, visibleDepth: false

}

})

graphicLayer.addGraphic(graphic)

刷新页面发现,并没有看到绘制的图形。原因是因为,当前矢量数据绘制的位置,不在当前地图的显示区域,有两种解决方式:

  1. 修改地图配置,找到config.json,在scene参数中修改center选项,将地图显示的中心设置在矢量数据附近的位置:"center": { "lat": 30.526361, "lng": 116.335987, "alt": 45187, "heading": 0, "pitch": -45 }
  2. 或者是使用flyTo:graphic.flyTo()

原理很简单,因为问题是地图中心不在矢量数据附近导致的,所以通过以上的某种方式,移动显示区域到矢量数据的位置就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值