osgEarth实战:5分钟搞定地图标注与动态标签(附完整代码)

osgEarth实战:5分钟实现智能地图标注系统

在数字孪生和三维可视化项目开发中,地图标注功能往往是刚需但容易被低估的环节。传统GIS开发需要处理复杂的坐标转换和渲染管线,而osgEarth提供的annotation模块将这个过程简化到了令人惊喜的程度——只需5行核心代码就能完成一个带图标和文字的气泡标注。本文将带您快速构建一个支持动态更新、交互编辑的智能标注系统,所有代码均可直接集成到现有osgEarth项目中。

1. 环境配置与基础标注

开始前确保已正确编译osgEarth,包含annotation模块。CMake配置中需要添加以下依赖项:

find_package(osgEarth REQUIRED)
find_package(osgEarthAnnotation REQUIRED)

基础标注只需三个核心类:

  • PlaceNode:带图标的点标注
  • LabelNode:纯文本标注
  • FeatureNode:矢量图形标注

最小化标注示例

// 创建纽约坐标点的标注
Style pinStyle;
pinStyle.getOrCreate<IconSymbol>()->url()->setLiteral("pin.png"); 
pinStyle.getOrCreate<TextSymbol>()->halo() = Color("#FFFFFF");

GeoPoint ny(geoSRS, -74.00, 40.71);
PlaceNode* pin = new PlaceNode(ny, "纽约", pinStyle);
mapNode->addChild(pin);

注意:图标路径需使用绝对路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值