当前位置: 首页 > news >正文

【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案

问题:

1.new mars3d.layer.GeoJsonLayer({type: "polygon",在styleOptions里配置label的时候,发现这个

不规则polygon加载的时候,会出现label不在中心位置。

  graphicLayer = new mars3d.layer.GeoJsonLayer({

    name: "全国省界",

    url: "//data.mars3d.cn/file/geojson/areas/100000_full.json",

    format: simplifyGeoJSON, // 用于自定义处理geojson

    symbol: {

      type: "polylineP",

      styleOptions: {

        width: 2,

        materialType: mars3d.MaterialType.LineFlow,

        materialOptions: {

          color: "#00ffff",

          image: "img/textures/fence-line.png",

          speed: 10,

          repeat_x: 10

        },

        distanceDisplayCondition: true,

        distanceDisplayCondition_far: 12000000,

        distanceDisplayCondition_near: 100000,

        label: {

          text: "{name}",

          position: "{center}", // 省会位置center

          font_size: 30,

          color: "#ffffff",

          outline: true,

          outlineColor: "#000000",

          scaleByDistance: true,

          scaleByDistance_far: 60000000,

          scaleByDistance_farValue: 0.2,

          scaleByDistance_near: 1000000,

          scaleByDistance_nearValue: 1,

          distanceDisplayCondition: true,

          distanceDisplayCondition_far: 10000000,

          distanceDisplayCondition_near: 100000,

          setHeight: 10000

        }

      }

    },

    flyTo: true

  })

  map.addLayer(graphicLayer)

  label: {

          text: "{name}",

          position: "{center}", // 省会位置center

这个配置可以看到在不规则的时候,就无法显示在中心了,是因为sdk内部计算多个点的点位中心依靠的是数学的围合面的多个点的中心点坐标算法计算的。

相关链接:

PolyUtil - V3.6.18 - Mars3D API文档

翻看了mars3d.graphic.PolygonEntity.StyleOptions,面 支持的样式信息这个label的文字所在位置除了center还有其他的位置是可以额外支持的。

解决方案:

可以在我们的图形数据里面加properties,带着坐标点位,就类似我们自己维护的数据一样,加个参数是专门显示点位的。

真正在项目中遇到的不规则的面数据也没几个,可以一个个点一下,避免通过center获取中心点有时候会在图形之外的问题。

默认是中心点位,遇到一个不正确的就修改一个。

相关文章:

【Mars3d】new mars3d.layer.GeoJsonLayer({不规则polygon加载label不在正中间的解决方案

问题: 1.new mars3d.layer.GeoJsonLayer({type: "polygon",在styleOptions里配置label的时候,发现这个 不规则polygon加载的时候,会出现label不在中心位置。 graphicLayer new mars3d.layer.GeoJsonLayer({ name: "全国省界…...

怎么快速修复mfc140.dll文件?解决mfc140.dll缺失的方法

面对计算机报告的 ​mfc140.dll​ 文件遗失错误,这通常表明系统中缺少一个关键的动态链接库文件,该文件对于运行以 Microsoft Foundation Class (MFC) 库编写的程序十分重要,尤其是那些需要图形界面的应用程序和一些游戏。若没有这个文件&…...

安全防御之入侵检测与防范技术

安全防御中的入侵检测与防范技术主要涉及到入侵检测系统(IDS)和入侵防御技术(IPS)。 入侵检测系统(IDS)是一种对入侵行为自动进行检测、监控和分析的软件与硬件的组合系统。IDS通过从计算机网络或系统中的若…...

Leetcode2807. 在链表中插入最大公约数

Problem: 2807. 在链表中插入最大公约数 文章目录 题目思路注意点Code 题目思路 模拟插入流程: 检测当前节点是否有后置结点;将当前结点与后置结点的值做最大公约数处理得到新结点的值,然后插入到当前结点之后;再将检测结点向后…...

MySQL-DML

DML是数据操纵语言,用来对表中数据进行增删改操纵。 添加数据:INSERT 1.给指定字段添加数据:INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2); 2.给全部字段添加数据:INSERT INTO 表名VALUES(值1,值2) 3.给指定字段批量添…...

开源项目 | 完整部署流程、一款开源人人可用的开源数据可视化分析工具

📚 项目介绍 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具,我们能够大幅提升数据分析效率、生成更高质量的项目报告,让用户通过直观的数据看到结…...

我建立了一个资源分享群

我建立了一个资源分享群 在为寻找资源犯愁? 在为分享资源犯愁? 一起加入分享资源群(是wx群哦)吧!你可以分享自己的资源帮助他人。你可以在群组里需求资源获取别人的帮助。发广告请绕行,会被拉黑哦 微信…...

C++中几个常用的类型选择模板函数

std::enable_if<B, T>::type 如果编译期满足B&#xff0c;那么返回类型T&#xff0c;否则编译报错 std::conditional<B, T, F>::type 如果编译期满足B&#xff0c;那么返回类型T&#xff0c;否则返回类型F 下面是一个示例&#xff0c;展示如何使用 std::condit…...

【LeetCode】1321. 餐馆营业额变化增长

表: Customer ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | | visited_on | date | | amount | int | ------------------------ 在 SQL 中&#xff0c;(custo…...

【网络技术】【Kali Linux】Wireshark嗅探(八)动态主机配置协议(DHCP)

一、实验目的 本次实验使用 Wireshark &#xff08;“网鲨”&#xff09;流量分析工具进行网络流量嗅探&#xff0c;旨在初步了解动态主机配置协议&#xff08;DHCP协议&#xff09;的工作原理。 二、DHCP协议概述 动态主机配置协议&#xff08; D ynamic H ost C onfigurat…...

算法29:不同路径问题(力扣62和63题)--针对算法28进行扩展

题目&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff0…...

openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位

文章目录 openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位188.1 磁盘满故障引起的core问题188.1.1 问题现象188.1.2 原因分析188.1.3 处理办法 188.2 GUC参数log_directory设置不正确引起的core问题188.2.1 问题现象188.2.2 原因分析188.2.3 处理办…...

kubernetes入门到进阶(5)

目录 镜像仓库&#xff1a;怎么用好docker hub这个宝藏 什么是镜像仓库&#xff08;Registry&#xff09; 什么是docker hub 如何在docker hub上挑选镜像 docker hub上进行概念股命名规则是什么 该怎么上传自己的镜像 离线环境该怎么办 小结 镜像仓库&#xff1a;怎么用好docke…...

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode&q…...

pytest常用的第三方插件介绍

本节介绍了如何安装和使用第三方插件。如果你想要编写自己的插件&#xff0c;请参阅“编写插件”。 通过pip可以轻松安装第三方插件&#xff1a; pip install pytest-NAME pip uninstall pytest-NAME如果已经安装了插件&#xff0c;pytest会自动找到并集成它&#xff0c;无需手…...

【经验】VSCode连接远程服务器(可以使用git管理、方便查看和编辑Linux源码)

1、查看OpenSSH Windows10通常自带OpenSSH不需要安装。 Windows10下检查是否已经安装OpenSSH的方法: 1)按下快捷键Win + X,选择Windows PoweShell(管理员) 2)输入以下指令: Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’ 3)如果电脑未安装OpenSSH,…...

机器学习-生存分析:如何基于随机生存森林训练乳腺癌风险评估模型?

一、 引言 乳腺癌是女性最常见的恶性肿瘤之一&#xff0c;也是全球范围内女性死亡率最高的癌症之一。据统计&#xff0c;每年全球有超过200万人被诊断为乳腺癌&#xff0c;其中约60万人死于该疾病。因此&#xff0c;乳腺癌的早期诊断和风险评估对于预防和治疗乳腺癌具有非常重要…...

MySQL学习笔记1: 数据库的简单介绍

目录 1. 数据库是什么2. 数据库这一类软件中的一些典型代表2.1. Oracle2.2. MySQL2.3. SQL Server2.4. SQLite (lite 轻量版) 3. 数据库的类型3.1. 关系型数据库3.2. 非关系型数据库 4. 总结 1. 数据库是什么 数据库是一类软件&#xff0c;这一类软件可以用来管理数据&#xf…...

【Docker】安装ELK(Docker Compose)

一、创建挂载目录 mkdir -p /docker/elk/elasticsearch/{plugins,data} mkdir -p /docker/elk/logstash 二、给目录授权 chmod 777 /docker/elk/elasticsearch/data 创建logstash配置文件 vim /docker/elk/logstash/logstash.conf input {tcp {mode => "server" h…...

【机器学习:欧氏距离 】机器学习中欧氏距离的理解和应用

【机器学习&#xff1a;欧氏距离 】机器学习中欧氏距离的理解和应用 距离公式二维更高的维度点以外的物体属性欧几里得距离的平方概括历史 在数学中&#xff0c;欧氏距离’是指欧氏空间中任意两点之间的直线距离。这种距离可以通过应用勾股定理来计算&#xff0c;利用两点的笛卡…...

保姆级教程:从NCBI下载序列到MEGA7构建进化树(附拟南芥SPL15基因实战)

生物信息学实战&#xff1a;从基因检索到进化树构建的全流程解析 在分子生物学研究中&#xff0c;系统进化分析是理解基因家族演化关系的重要工具。对于刚接触生物信息学的学生来说&#xff0c;从零开始完成一个完整的进化树分析项目往往面临诸多挑战——如何获取目标基因序列…...

手把手教你为全志Tina Linux添加新SPI屏驱动:以GC9306和HX8357C为例

全志Tina Linux SPI屏驱动移植实战&#xff1a;从裸机到内核框架的完整指南 在嵌入式Linux开发中&#xff0c;LCD显示屏的驱动移植是一个常见但颇具挑战性的任务。不同于裸机环境下的直接寄存器操作&#xff0c;Linux内核要求驱动程序遵循特定的框架和规范。本文将深入探讨如何…...

基于hexascribe/chatbot-builder框架的对话机器人开发实战指南

1. 项目概述&#xff1a;一个面向开发者的对话机器人构建框架最近在GitHub上看到一个挺有意思的项目&#xff0c;叫hexascribe/chatbot-builder。乍一看名字&#xff0c;你可能会觉得这又是一个“又一个聊天机器人框架”&#xff0c;市面上类似的工具确实不少&#xff0c;从早期…...

基于RAG与智能体技术构建法律领域AI应用实战指南

1. 项目概述&#xff1a;一个法律智能体的诞生最近在GitHub上看到一个挺有意思的项目&#xff0c;叫mileson/moticlaw。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但稍微拆解一下就能明白它的野心&#xff1a;“motic” 很可能是 “motion”&#xff08;动议、提…...

开源项目如何从“用爱发电”变成可持续收入?

一、为什么测试领域的开源项目更需要可持续收入&#xff1f;在测试领域&#xff0c;开源工具早已成为基础设施。从UI自动化的Selenium、移动端的Appium&#xff0c;到性能压测的JMeter、新一代端到端框架Playwright&#xff0c;几乎每个测试工程师的日常工作都构建在开源软件之…...

VOL框架数据库连接实战:从零到一的关键配置与常见陷阱解析

1. VOL框架数据库连接入门指南 第一次接触VOL框架的开发者&#xff0c;往往会在数据库配置环节栽跟头。我刚开始用VOL框架时也踩了不少坑&#xff0c;最典型的就是明明按照官方文档一步步操作&#xff0c;后端服务死活启动不了。后来发现是项目结构理解有偏差&#xff0c;导致配…...

监听bean在容器中注入情况

直接上代码&#xff0c;原理就是 通过环境监听器/*** 调试监听器* author shadow*/ public class DebugListener {Autowiredprivate ApplicationContext applicationContext;EventListener(ApplicationReadyEvent.class)public void onApplicationReady() {System.out.println(…...

基于Arduino与IRLib2的万能遥控器DIY:从红外解码到蓝牙HID的嵌入式实践

1. 项目概述与核心价值如果你和我一样&#xff0c;家里电视、机顶盒、音响、空调的遥控器堆满了茶几&#xff0c;每次想用都得翻找半天&#xff0c;或者你正在为一位行动不便的亲友寻找一种更便捷的控制家电的方式&#xff0c;那么这个基于Arduino和IRLib2的万能遥控器DIY项目&…...

OpenResearcher:AI驱动的模块化科研工作流框架实践指南

1. 项目概述&#xff1a;一个为研究者量身打造的AI驱动开源工具箱最近在折腾一些研究项目&#xff0c;发现从文献调研、数据处理到论文写作&#xff0c;整个流程里重复性劳动实在太多了。每次开一个新坑&#xff0c;光是搭建基础环境、找合适的工具链就得花上半天&#xff0c;更…...

思源宋体TTF完全指南:7种字重免费解决中文排版难题

思源宋体TTF完全指南&#xff1a;7种字重免费解决中文排版难题 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文设计项目找不到合适的字体而烦恼吗&#xff1f;无论是网页设计…...