遍历取后端数据推送到地图上,实现图标点标记地图效果

遍历取后端数据推送到地图上,实现图标点标记地图效果

示例链接:

功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

踩坑注意点:

1. id: 1 是地图底图的id 后台也返回之后 id直接会有冲突 此时图标标记之后无法单击

 

相关代码:

import * as mars3d from "mars3d"
export let map


function initMap() {
  // 读取 config.json 配置文件
  return mars3d.Util.fetchJson({ url: "config/config.json" }).then(function (mapOptions) {
    if (mapOptions.map3d) {
      mapOptions = mapOptions.map3d
    }
   // 创建三维地球场景
    map = new mars3d.Map("mars3dContainer", mapOptions)

    // 打印测试信息
    console.log("mars3d的Map主对象构造完成", map)
    return map
  })
}

export function onMounted(mapInstance) {
  map = mapInstance // 记录首次创建的map
  map.basemap = []
  map.hasTerrain = false
  const data = [
    {
      id: 1,
      type: 1,
      name: "类型1",
      children: [
        {
          id: "28865378-9a2c-4004-af68-1556628f906f",
          name: "name1",
          lng: "117.131600",
          lat: "31.131600"
        },
        {
          id: "a7f1929f-1b75-42e7-92d6-0370aa9d1931",
          name: "name2",
          lng: "118.094800",
          lat: "32.094800"
        },
        {
          id: "d3997cea-f23e-47fd-a3cc-7de858019644",
          name: "name3",
          lng: "116.241728",
          lat: "30.879732"
        }
      ]
    },
    {
      id: 2,
      type: 2,
      name: "潜艇",
      children: null
    },
    {
      id: 3,
      type: 3,
      name: "飞机",
      children: null
    },
    {
      id: 4,
      type: 4,
      name: "无人系统",
      children: null
    },
    {
      id: 5,
      type: 5,
      name: "地面兵力及设施",
      children: null
    },
    {
      id: 99,
      type: 99,
      name: "其他",
      children: null
    }
  ]
  data.forEach((item, index) => {
    console.log("index", index)
    // 处理聚合点对象外层配置信息
    let itemobj = {}
    // 如有children有数据 动态在图层中增加点集合
    if (item.children != null) {
      // 如果有children创建点聚合对象
      itemobj = {
        type: "FeatureCollection",
        crs: {
          type: "name",
          properties: {
            name: "EPSG:4490"
          }
        },
        features: []
      }
      item.children.forEach((childrenitem, chukdrenindex) => {
        let itemobjfeatures = {}
        itemobjfeatures = {
          type: "Feature",
          id: childrenitem.id,
          geometry: {
            type: "Point",
            coordinates: [childrenitem.lng, childrenitem.lat]
          },
          properties: {
            OBJECTID: childrenitem.id,
            NID: childrenitem.id,
            NAME: childrenitem.name,
            图片: "img/marker/mark-red.png",
            lng: childrenitem.lng,
            lat: childrenitem.lat
          }
        }
        itemobj.features.push(itemobjfeatures)
        console.log(itemobj)
      })
    }

  const  separateobj = {
      id: item.type,
      name: item.name,
      // 点聚合数据
      data: itemobj,
      symbol: {
        styleOptions: {
          image: "img/marker/mark-red.png",
          verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
          scale: 1,
          scaleByDistance: true,
          scaleByDistance_far: 20000,
          scaleByDistance_farValue: 0.5,
          scaleByDistance_near: 1000,
          scaleByDistance_nearValue: 1,
          label: {
            text: "{NAME}",
            font_size: 25,
            color: "#ffff00",
            font_family: "微软雅黑",
            outline: true,
            outlineColor: "#000000",
            pixelOffsetY: -40,
            scaleByDistance: true,
            scaleByDistance_far: 1000000,
            scaleByDistance_farValue: 0.5,
            scaleByDistance_near: 1000,
            scaleByDistance_nearValue: 1,
            distanceDisplayCondition: true,
            distanceDisplayCondition_far: 1000000,
            distanceDisplayCondition_near: 0,
            visibleDepth: true
          }
        }
      },
    popup: "all",
    // popup: [
    //   { field: "NAME", name: "名称" },
    //   { type: "details", callback: "showPopupDetails", field: "图片", className: "mars3d-popup-btn-custom" }
    // ],
    // popup: [
    //   { field: "NAME", name: "名称" },
    //   { type: "details", field: "图片", name: "image" },
    //   {
    //     type: "html",
    //     html: "<label>视频</label><video src='http://data.mars3d.cn/file/video/lukou.mp4' controls autoplay style=\"width: 300px;\" ></video>"
    //   }
    // ],
      show: true
    }
    
    const geoJsonLayer = new mars3d.layer.GeoJsonLayer(separateobj)
    map.addLayer(geoJsonLayer)
    console.log("geoJsonLayer", geoJsonLayer)
  })

}

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

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

相关文章

异步 IO 机制 io_uring

一、io_uring 原理 如何解决频繁 copy 的问题 → mmap 内存映射解决。 submit queue 中的节点和 complete queue 中的节点共用一块内存&#xff0c;而不是把 submit queue 中的节点 copy 到 complete queue 中。 如何做到线程安全 → 无锁环形队列解决。 二、io_uring 使用 内…

了解 Python 底层的解释器 CPython 和 Python 的对象模型

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、CPython CPython 是 Python 编程语言的官方和最广泛使用的实现。它是用 C 语言编写的&#xff0c;因此得名 “CPython”。作为 Python 生态系统的核心&#xff0c;了解 CPython 的工作原理、主要特…

【新版】系统架构设计师 - 知识点 - 结构化开发方法

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 知识点 - 结构化开发方法结构化开发方法结构化分析结构化设计 数据流图和数据字典模块内聚类型与耦合类型 架构 - 知识点 - 结构化开发方法 结构化开发方法 分析阶段 工具&#xff1a;数据流图、…

如何实现文件上传到阿里云OSS!!!(结合上传pdf使用)

一、开通阿里云OSS对象存储服务 对象存储 OSS_云存储服务_企业数据管理_存储-阿里云阿里云对象存储 OSS 是一款海量、安全、低成本、高可靠的云存储服务&#xff0c;提供 99.995 % 的服务可用性和多种存储类型&#xff0c;适用于数据湖存储&#xff0c;数据迁移&#xff0c;企…

股票战法课程之主力的痕迹

文章目录 1. 主力的操作痕迹2. 主力的建仓2.1 建仓的三种方式2.2 建仓的五个特点2.3 建仓的迹象2.4 建仓的成交量特征 1. 主力的操作痕迹 序号痕迹原因1不跟随大盘节奏筹码都在主力手中2突发利空消息&#xff0c;股价不跌反涨主力被套&#xff0c;不希望散户抛盘3很小的成交量…

智己汽车数据驱动中心PMO高级经理张晶女士受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 智己汽车科技有限公司数据驱动中心PMO高级经理张晶女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“规模化敏捷落地实践”。大会将于5月25-26日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 2…

CSS基础:table的4个标签的样式详解(6000字长文!附案例)

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

【Java】Comparable和Comparator的区别

文章目录 区别Comparable示例Comparator示例参考资料 都可以用于排序。都是接口。 区别 Comparable示例 让被排序的类实现 Comparable 接口&#xff0c;重写 compareTo() 方法。 import java.util.*;public class Main {public static void main(String[] args){TreeSet<…

端点安全时刻影响着网络安全,我们应该如何保护

端点&#xff08;Endpoint&#xff09;是网络通信中的一个重要概念&#xff0c;指的是网络通信中的发送或接收信息的设备或节点。在一个网络中&#xff0c;端点可以是硬件设备&#xff08;如计算机、服务器、手机、路由器等&#xff09;&#xff0c;也可以是软件应用或服务。端…

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出) 订阅专栏只能获取一份代码 部分源码 %------

ceph osd分组

一、前言 使用分组可以更好的管理osd&#xff0c;将不同类型的磁盘&#xff0c;分到不同的组中&#xff0c;例如hhd类型的osd分配到hhd组&#xff0c;ssd类型的osd分配到ssd组&#xff0c;将io要求不高的分配到hhd组做存储&#xff0c;io要求高的分配到ssd组做存储 二、配置 查…

Linux驱动开发笔记(一)字符驱动

文章目录 前言一、字符设备驱动程序框架二、基本原理1. 设备号的申请与归还2. 保存file_operations接口3. 设备节点的创建和销毁4. 创建文件设备4.1 mknod4.2 init_special_incode( )函数 5. 查找file_operation接口函数速查表 三、程序编写1. 模块初始化及关闭2. 文件操作方式…

墨子web3时事周报

蚂蚁集团Web3研发进展与布局 国内Web3赛道的领军企业——蚂蚁集团&#xff0c;凭借其在前沿科技领域的深耕不辍&#xff0c;已在Web3技术研发疆域缔造了卓越战绩。特别是在引领行业革新的关键时刻&#xff0c;集团于今年四月末震撼推出了颠覆性的Web3全套解决方案&#xff0c…

【Godot4自学手册】第三十八节给游戏添加音效

今天&#xff0c;我的主要任务就是给游戏添加音效。在添加音效前&#xff0c;我们需要了解一个东西&#xff1a;音频总线。这个东西或许有些枯燥&#xff0c;如果你只为添加一个音效没必要了解太多&#xff0c;但如果你以后将要经常与音频播放打交道&#xff0c;还是要了解一下…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下&#xff0c;运行一个可执行文件的时候&#xff0c;可能会出现找不到依赖库的情况&#xff0c;比如图下这种情况&#xff0c;可以看到是缺少了license.dll或者libtest.so&#xff0c;所以无法运行。怎么知道它到底缺少什么dll呢&…

论婚恋相亲交友软件的市场前景和开发方案H5小程序APP源码

随着移动互联网的快速发展和社交需求的日益增长&#xff0c;婚恋相亲交友软件小程序成为了越来越多单身人士的选择。本文将从市场前景、使用人群、盈利模式以及竞品分析等多个角度&#xff0c;综合论述这一领域的现状与发展趋势。 一、市场前景 在快节奏的现代生活中&#xf…

矩阵混乱度(熵值)代码计算

1、先回顾下熵值的数据公式&#xff1a; 2、jax.numpy代码 注意的点&#xff1a;熵值计算的输入的必须是归一化的正值 import jax.numpy as jnp import jax def _entroy(probs):log_probs jnp.log2(jnp.maximum(1.0e-30, probs))mean_sum_plogp jnp.mean(- jnp.sum(log_pro…

面试题:Redis如何防止缓存穿透 + 布隆过滤器原理

题目来源 招银网络-技术-1面 题目描述 缓存穿透是什么&#xff1f;如何防止缓存穿透布隆过滤器的原理是什么&#xff1f; 我的回答 缓存穿透是什么&#xff1f; 攻击者大量请求缓存和数据库中都不存在的key。如何防止缓存穿透 可以使用布隆过滤器布隆过滤器的原理是什么&a…

mysql数据库连接工具(mysql数据库连接工具怎么备份数据不备份表结构)

MySQLWorkbench连接,导入和导出数据库? 1、导出&#xff1a;使用MySQL Workbench连接到MySQL服务器&#xff0c;选择要导出的数据库&#xff0c;右键单击数据库并选择“导出”。选择要导出的表和数据&#xff0c;将导出文件保存为.sql文件。 2、打开MySQL Workbench&#xf…

【GlobalMapper精品教程】074:从Lidar点云创建3D地形模型

本文基于地形点云数据,基于泊松方法、贪婪三角形测量方法和阿尔法形状创建3d地形模型。 文章目录 一、加载地形点云数据二、创建三维地形模型1. 泊松方法2. 贪婪三角形测量方法3. 阿尔法形状注意事项一、加载地形点云数据 加载配套案例数据包中的data074.rar中的地形点云数据…
最新文章