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); //删除标尺
}

results matching ""

    No results matching ""