【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获取中心点有时候会在图形之外的问题。

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

相关推荐
德彪稳坐倒骑驴1 天前
SQL连续登录问题
服务器·数据库·sql
葡萄城技术团队1 天前
告别臃肿 SQL:HR 系统如何实现“字段级”权限控制与动态脱敏方案?
数据库·sql
校羽干1 天前
ubuntu22.04 安装卸载更新 ollama
运维·服务器
SQL必知必会1 天前
SQL HAVING 是什么?一篇讲清 WHERE 和 HAVING 的区别
数据库·sql
weixin_568996061 天前
c++如何实现日志文件的异步落盘功能_基于无锁队列方案【附代码】
jvm·数据库·python
无我Code1 天前
全套开源:一款云端服务+本地设备计算的文生图应用
前端·人工智能·后端
tongyiixiaohuang1 天前
技术案例分享:金蝶云星空客户数据同步到MySQL的实现
android·数据库·mysql
用户69371750013841 天前
实测可用|小米 MiMo 百万亿 Token 免费领,开发者速冲
前端·后端·ai编程
淘矿人1 天前
2026年4月-DeepSeek V4 vs GPT-5.5深度对比测评:weelinking一键切换实测
服务器·数据库·人工智能·python·gpt·学习·php
前端小万1 天前
令人头痛的前端环境
前端·前端工程化