2.4.1 标尺
标尺
标尺是指在三维空间内绘制标注刻度尺,用来辅助显示三维场景高度的功能。
标尺主要包括添加(创建)、更新、显隐、删除和获取结果5种操作。
注意:可创建空的绘制图层,也可创建预设的绘制图层,如需创建预设绘制图层,则IsLoad
, IsActive
, Point
三个参数需要同时配置。
下图是标尺效果:
参数说明
标尺可配置的参数如下表所示:
配置项 | 配置说明 | 值类型 | 备注 |
---|---|---|---|
LayerOptionsName | 图层配置对象名称 | string | 分析图层需配置为:AnalysisLayerOptions |
DataSourceTypeName | 数据源类型 | string | as_ruler代表标尺 |
SurfaceWidth | 标尺宽度 | int | 标尺横截面宽度。默认为0 |
SurfaceColor | 标尺颜色 | R,G,B,A | 颜色取值范围在0-1.0之间,如 "0.9,0.8,0.8,1.0" |
TickMarkWidth | 刻度线宽度 | int | 标尺刻度线宽度。默认为0 |
TickMarkColor | 刻度线颜色 | R,G,B,A | 标尺刻度线颜色。颜色取值范围在0-1.0之间,如 "0.9,0.8,0.8,1.0" |
StartingPointHeight | 起点高度 | int | 标尺起点的高度。如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准 |
RulerHeight | 标尺高度 | int | 标尺整体高度。默认为0 |
LargeScaleValue | 大刻度大小 | int | 标尺大刻度的大小。默认为0 |
SmallScaleValue | 小刻度大小 | int | 标尺小刻度的大小。默认为0 |
IsDepthTest | 是否开启深度测试 | bool | 默认为false。false不开启,结果会浮在场景上,true实际显示位置 |
Style | 添加样式 | string | 配置文字样式,配置信息参考文字样式配置 |
IsLoad | 是否初始化加载点 | bool | 默认为false |
IsActive | 是否激活分析 | bool | 默认为true,表示是否可操作场景进行绘制 |
Point | 坐标点集 | x,y,z列表 | 需传入经度,纬度,高程坐标集,中间用;分隔,并以;结尾 |
IsWorld | 是否世界坐标点 | bool | 传入的坐标是否是世界坐标。true-世界坐标,false-经纬度坐标。默认为true |
NonIntersect | 非相交图层 | int列表 | 该分析与场景哪些类型图层不相交。1-分析,2-地形,3-模型,4-矢量(未贴地),5-矢量模板阴影体,6-矢量(贴地),7-倾斜摄影。默认为1,即与除分析之外所有图层都相交 |
获取结果说明
标尺可以通过图层对象的GetLayerResult() 方法获取结果。获取的结果值对象参数如下表所示:
配置项 | 配置说明 | 值类型 | 备注 |
---|---|---|---|
DataSourceTypeName | 数据源类型 | string | as_ruler代表标尺 |
ClickPoints | 关键点坐标 | x,y,z列表 | 鼠标点击场景形成的关键点的经度,纬度,高程坐标列表,中间用;分隔,并以;结尾 |
IsSuccess | 是否创建成功 | bool | 默认为false |
代码调用示例
Javascript调用
var rulerMeasure;
//创建标尺
function CreateRulerMeasure() {
//创建图层配置信息
var tlo = map.CreateLayerOptions("ruler");//创建分析图层配置,任意名称
tlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//创建配置类型, AnalysisLayerOptions代表分析图层数据配置
tlo.AddConfig("DataSourceTypeName","as_ruler");//数据源类型,as_ruler代表标尺
tlo.AddConfig("SurfaceWidth","10");//标尺的宽度,为整数
tlo.AddConfig("SurfaceColor","1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo.AddConfig("TickMarkWidth","1");//刻度线的宽度,为整数
tlo.AddConfig("TickMarkColor","1.0,0.0,0.0,1");//刻度线的颜色(RGBA)
tlo.AddConfig("StartingPointHeight","0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo.AddConfig("RulerHeight","200");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo.AddConfig("LargeScaleValue","20");//大刻度之间的距离,单位为米,为整数
tlo.AddConfig("SmallScaleValue","2");//小刻度之间的高度距离,单位为米,为整数
tlo.AddConfig("IsDepthTest","false");//是否开启深度测试
//创建文字符号
var pSymbol = map.CreateSymbol("AnalysisTextSymbol");//创建文字符号,分析文字为:AnalysisTextSymbol
pSymbol.AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol.AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol.AddConfig("Size", "40");//字体精度大小
pSymbol.AddConfig("CharacterSize", "20");//文字大小
pSymbol.AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol.AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol.AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol.AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol.AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol.AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol.AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol.AddConfig("IsBack", "false");//是否设置背景色
pSymbol.AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol.AddConfig("IsDepthTest","true");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol.AddConfig("MeasureUnitLanguage","0");//显示语言。0-英文;1-中文
//创建样式
var pStyle = map.CreateStyle("Text");//创建样式
pStyle.AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
tlo.AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure = map.CreateLayer("AnalysisLayer", tlo);//创建分析图层,第一项参数必须为AnalysisLayer
map.AddLayer(rulerMeasure);//添加分析图层
}
//更新标尺
function UpdateRulerMeasure() {
if( rulerMeasure != null )
{
var tlo = map.CreateLayerOptions("ruler"); //创建图层配置对象,任意名称
tlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions"); //图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
tlo.AddConfig("DataSourceTypeName","as_ruler");//数据源类型,as_ruler代表标尺
tlo.AddConfig("SurfaceWidth","20");//标尺的宽度,为整数
tlo.AddConfig("SurfaceColor","1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo.AddConfig("TickMarkWidth","2");//刻度线的宽度,为整数
tlo.AddConfig("TickMarkColor","1.0,1.0,0.0,1");//刻度线的颜色(RGBA)
//tlo.AddConfig("StartingPointHeight","0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo.AddConfig("RulerHeight","400");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo.AddConfig("LargeScaleValue","40");//大刻度之间的距离,单位为米,为整数
tlo.AddConfig("SmallScaleValue","2");//小刻度之间的高度距离,单位为米,为整数
tlo.AddConfig("IsDepthTest","false");//是否开启深度测试
//创建文字符号
var pSymbol = map.CreateSymbol("AnalysisTextSymbol");//创建文字符号,分析文字为:AnalysisTextSymbol
pSymbol.AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol.AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol.AddConfig("Size", "40");//字体精度大小
pSymbol.AddConfig("CharacterSize", "20");//文字大小
pSymbol.AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol.AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol.AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol.AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol.AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol.AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol.AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol.AddConfig("IsBack", "false");//是否设置背景色
pSymbol.AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol.AddConfig("IsDepthTest","false");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol.AddConfig("MeasureUnitLanguage","1");//显示语言。0-英文;1-中文
//创建样式
var pStyle = map.CreateStyle("Text");//创建样式
pStyle.AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
//将样式添加到图层配置里
tlo.AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure.UpdateLayerOptions(tlo);
}
}
//获取标尺结果
function GetRulerMeasure() {
var opt = rulerMeasure.GetLayerResult();//获取图层结果
//判断当前图层数据源类型
if(opt.GetConfigValueByKey("DataSourceTypeName") == "as_ruler")
{
var IsSuccess = opt.GetConfigValueByKey("IsSuccess");//获取是否创建成功
var ClickPoints = opt.GetConfigValueByKey("ClickPoints"); //获取点位坐标
alert("IsSuccess:" + IsSuccess + "\nClickPoints:" + ClickPoints);
}
}
//删除标尺
function RemoveRulerMeasure() {
map.RemoveLayer(rulerMeasure); //删除标尺
}
C++调用
BaseObjectCOMLib::ILayerObjectPtr rulerMeasure;//图层对象
void CrulerDlg::OnBnClickedCreaterulermeasure()
{
//创建图层配置信息
ConfigOptionsCOMLib::ILayerOptionsPtr tlo = map->CreateLayerOptions("ruler");//创建分析图层配置
tlo->AddConfig("LayerOptionsName", "AnalysisLayerOptions"); //创建配置类型, AnalysisLayerOptions代表分析图层数据配置
tlo->AddConfig("DataSourceTypeName","as_ruler");//数据源类型,as_ruler代表标尺
tlo->AddConfig("SurfaceWidth","10");//标尺的宽度,为整数
tlo->AddConfig("SurfaceColor","1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo->AddConfig("TickMarkWidth","1");//刻度线的宽度,为整数
tlo->AddConfig("TickMarkColor","1.0,0.0,0.0,1");//刻度线的颜色(RGBA)
tlo->AddConfig("StartingPointHeight","0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo->AddConfig("RulerHeight","200");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo->AddConfig("LargeScaleValue","20");//大刻度之间的距离,单位为米,为整数
tlo->AddConfig("SmallScaleValue","2");//小刻度之间的高度距离,单位为米,为整数
tlo->AddConfig("IsDepthTest","true");//是否开启深度测试
//创建文字符号
ConfigOptionsCOMLib::ISymbolObjectPtr pSymbol = map->CreateSymbol("AnalysisTextSymbol");//创建文字符号,分析文字为:AnalysisTextSymbol
pSymbol->AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol->AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol->AddConfig("Size", "40");//字体精度大小
pSymbol->AddConfig("CharacterSize", "20");//文字大小
pSymbol->AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol->AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol->AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol->AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol->AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol->AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol->AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol->AddConfig("IsBack", "false");//是否设置背景色
pSymbol->AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol->AddConfig("IsDepthTest","true");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol->AddConfig("MeasureUnitLanguage","0");//显示语言。0-英文;1-中文
//创建样式
ConfigOptionsCOMLib::IStylePtr pStyle = map->CreateStyle("Text");//创建Style,名字可以任意
pStyle->AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
//将样式添加到图层配置里
tlo->AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure = map->CreateLayer("AnalysisLayer", tlo);//创建分析图层
map->AddLayer(rulerMeasure);//添加分析图层
}
void CrulerDlg::OnBnClickedUpdaterulermeasure()
{
if( rulerMeasure != NULL )
{
ConfigOptionsCOMLib::ILayerOptionsPtr tlo = map->CreateLayerOptions("ruler"); //创建分析图层配置,给配置起个名称,任意名称
tlo->AddConfig("LayerOptionsName", "AnalysisLayerOptions"); //创建配置类型, AnalysisLayerOptions代表分析图层数据配置
tlo->AddConfig("DataSourceTypeName","as_ruler");//数据源类型,as_ruler代表标尺
tlo->AddConfig("SurfaceWidth","20");//标尺的宽度,为整数
tlo->AddConfig("SurfaceColor","1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo->AddConfig("TickMarkWidth","2");//刻度线的宽度,为整数
tlo->AddConfig("TickMarkColor","1.0,1.0,0.0,1");//刻度线的颜色(RGBA)
//tlo->AddConfig("StartingPointHeight","0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo->AddConfig("RulerHeight","400");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo->AddConfig("LargeScaleValue","40");//大刻度之间的距离,单位为米,为整数
tlo->AddConfig("SmallScaleValue","2");//小刻度之间的高度距离,单位为米,为整数
tlo->AddConfig("IsDepthTest","false");//是否开启深度测试
//创建文字符号
ConfigOptionsCOMLib::ISymbolObjectPtr pSymbol = map->CreateSymbol("AnalysisTextSymbol");//创建文字符号,分析文字为:AnalysisTextSymbol
pSymbol->AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol->AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol->AddConfig("Size", "40");//字体精度大小
pSymbol->AddConfig("CharacterSize", "20");//文字大小
pSymbol->AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol->AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol->AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol->AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol->AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol->AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol->AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol->AddConfig("IsBack", "false");//是否设置背景色
pSymbol->AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol->AddConfig("IsDepthTest","false");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol->AddConfig("MeasureUnitLanguage","1");//显示语言。0-英文;1-中文
//创建样式
ConfigOptionsCOMLib::IStylePtr pStyle = map->CreateStyle("Text");//创建Style,名字可以任意
pStyle->AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
//将样式添加到图层配置里
tlo->AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure->UpdateLayerOptions(tlo);
}
}
void CrulerDlg::OnBnClickedGetrulermeasure()
{
ConfigOptionsCOMLib::ILayerOptionsPtr opt = rulerMeasure->GetLayerResult();//获取图层结果
//判断当前图层数据源类型
std::string DataSourceTypeName = opt->GetConfigValueByKey("DataSourceTypeName");//获得数据源类型
if(DataSourceTypeName == "as_ruler")
{
CString IsSuccess = opt->GetConfigValueByKey("IsSuccess");//获取是否创建成功
CString ClickPoints = opt->GetConfigValueByKey("ClickPoints"); //获取点位坐标
MessageBox(L"IsSuccess:" + IsSuccess + L"\nClickPoints:" + ClickPoints);
}
}
void CrulerDlg::OnBnClickedRemoverulermeasure()
{
map->RemoveLayer(rulerMeasure); //删除标尺
rulerMeasure = NULL;
}
C#调用
ILayerObject rulerMeasure;
//创建标尺
private void CreateRulerMeasure_Click(object sender, EventArgs e)
{
//创建图层配置信息
ILayerOptions tlo = map.CreateLayerOptions("ruler");//创建分析图层配置,任意名称
tlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions"); //创建配置类型, AnalysisLayerOptions代表分析图层数据配置
tlo.AddConfig("DataSourceTypeName", "as_ruler");//数据源类型,as_ruler代表标尺
tlo.AddConfig("SurfaceWidth", "10");//标尺的宽度,为整数
tlo.AddConfig("SurfaceColor", "1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo.AddConfig("TickMarkWidth", "1");//刻度线的宽度,为整数
tlo.AddConfig("TickMarkColor", "1.0,0.0,0.0,1");//刻度线的颜色(RGBA)
tlo.AddConfig("StartingPointHeight", "0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo.AddConfig("RulerHeight", "200");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo.AddConfig("LargeScaleValue", "20");//大刻度之间的距离,单位为米,为整数
tlo.AddConfig("SmallScaleValue", "2");//小刻度之间的高度距离,单位为米,为整数
tlo.AddConfig("IsDepthTest", "true");//是否开启深度测试
//创建文字符号
ISymbolObject pSymbol = map.CreateSymbol("AnalysisTextSymbol");//创建文字符号
pSymbol.AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol.AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol.AddConfig("Size", "40");//字体精度大小
pSymbol.AddConfig("CharacterSize", "20");//文字大小
pSymbol.AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol.AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol.AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol.AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol.AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol.AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol.AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol.AddConfig("IsBack", "false");//是否设置背景色
pSymbol.AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol.AddConfig("IsDepthTest", "true");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol.AddConfig("MeasureUnitLanguage", "0");//显示语言。0-英文;1-中文
//创建样式
IStyle pStyle = map.CreateStyle("Text");//创建样式
pStyle.AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
//将样式添加到图层配置里
tlo.AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure = map.CreateLayer("AnalysisLayer", tlo);//创建分析图层
map.AddLayer(rulerMeasure);//添加分析图层
}
//更新标尺
private void UpdateRulerMeasure_Click(object sender, EventArgs e)
{
if (rulerMeasure != null)
{
var tlo = map.CreateLayerOptions("ruler"); //创建分析图层配置
tlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions"); //创建配置类型, AnalysisLayerOptions代表分析图层数据配置
tlo.AddConfig("DataSourceTypeName", "as_ruler");//数据源类型,as_ruler代表标尺
tlo.AddConfig("SurfaceWidth", "20");//标尺的宽度,为整数
tlo.AddConfig("SurfaceColor", "1.0,1.0,0.0,0.7");//标尺的颜色(RGBA)
tlo.AddConfig("TickMarkWidth", "2");//刻度线的宽度,为整数
tlo.AddConfig("TickMarkColor", "1.0,1.0,0.0,1");//刻度线的颜色(RGBA)
//tlo.AddConfig("StartingPointHeight","0");//标尺起点的高度,为整数,如果不设置此参数,则以点击的点的高度为准,设置此参数,则以此参数的值为准
tlo.AddConfig("RulerHeight", "400");//标尺高度,为整数
//标尺的大刻度必须为小刻度的倍数,否则效果无法正常显示
tlo.AddConfig("LargeScaleValue", "40");//大刻度之间的距离,单位为米,为整数
tlo.AddConfig("SmallScaleValue", "2");//小刻度之间的高度距离,单位为米,为整数
tlo.AddConfig("IsDepthTest", "false");//是否开启深度测试
//创建文字符号
var pSymbol = map.CreateSymbol("AnalysisTextSymbol");//创建文字符号
pSymbol.AddConfig("FillingColor", "1.0, 0.0, 0.0, 1.0");//设置文字颜色(RGBA)
pSymbol.AddConfig("Font", "C:\\WINDOWS\\Fonts\\STXIHEI.TTF");//设置字体类型,字体文件一定要存在
pSymbol.AddConfig("Size", "40");//字体精度大小
pSymbol.AddConfig("CharacterSize", "20");//文字大小
pSymbol.AddConfig("CharacterMode", "1");//取值 1 -- 始终朝向相机
pSymbol.AddConfig("AlignmentMode", "5");//文字对齐方式
pSymbol.AddConfig("AxisAlignment", "6");//旋转轴 0 - 7, 6: 自动
pSymbol.AddConfig("RemoveDuplicateLabels", "false");//去重复
pSymbol.AddConfig("IsEmbolden", "false");//字体是否加粗
pSymbol.AddConfig("IsTransform", "true");//字体是否为斜体
pSymbol.AddConfig("IsUnderline", "false");//字体是否有下划线
pSymbol.AddConfig("IsBack", "false");//是否设置背景色
pSymbol.AddConfig("BackColor", "0,1.0,1.0,1");//背景颜色,是否设置背景色为true有效
pSymbol.AddConfig("IsDepthTest", "false");//是否开启深度测试。false不开启,结果会浮在场景上,true实际显示位置
pSymbol.AddConfig("MeasureUnitLanguage", "1");//显示语言。0-英文;1-中文
//创建样式
var pStyle = map.CreateStyle("Text");//创建样式
pStyle.AddSymbol("AnalysisTextSymbol", pSymbol.GetConfig());//将符号对象添加到样式,第一参数为符号类型
//将样式添加到图层配置里
tlo.AddConfig("Style", pStyle.GetConfig());//添加样式
rulerMeasure.UpdateLayerOptions(tlo);
}
}
//获取标尺结果
private void GetRulerMeasure_Click(object sender, EventArgs e)
{
var opt = rulerMeasure.GetLayerResult();//获取图层结果
//判断当前图层数据源类型
if (opt.GetConfigValueByKey("DataSourceTypeName") == "as_ruler")
{
var IsSuccess = opt.GetConfigValueByKey("IsSuccess");//获取是否创建成功
var ClickPoints = opt.GetConfigValueByKey("ClickPoints"); //获取点位坐标
MessageBox.Show("IsSuccess:" + IsSuccess + "\nClickPoints:" + ClickPoints);
}
}
//删除标尺
private void RemoveRulerMeasure_Click(object sender, EventArgs e)
{
map.RemoveLayer(rulerMeasure); //删除标尺
}