2.4.2 态势标绘
态势标绘
态势标绘是指使用标记标绘功能反应自然、社会、经济和军事等现状及发展趋势,它是为实时分析决策提供服务的功能。 CooRun SDK支持的标绘类型包括:点、圆、椭圆、弓形、扇形、曲线面、多边形、矩形、聚集地、钳击、直箭头、细直箭头、突击方向、进攻方向、进攻方向(尾)、分队战斗行动、分队战斗行动(尾)等类型。
态势标绘主要包括添加(创建)、更新、显隐、删除和获取结果5种操作。
注意:可创建空的绘制图层,也可创建预设的绘制图层,如需创建预设绘制图层,则IsLoad
, IsActive
, Points
三个参数需要同时配置
下图是态势标绘效果:
参数说明
态势标绘可配置的参数如下表所示:
配置项 | 配置说明 | 值类型 | 备注 |
---|---|---|---|
LayerOptionsName | 图层配置对象名称 | string | 分析图层需配置为:AnalysisLayerOptions |
DataSourceTypeName | 数据源类型 | string | as_plot代表态势标绘 |
PlotType | 标绘类型 | int | 具体的标绘类型见下表 标绘类型 |
PointColor | 点颜色 | R,G,B,A | 颜色取值范围在0-1.0之间,如 "0.9,0.8,0.8,1.0" |
PointSize | 点大小 | float | 点大小取值范围在1-10之间 |
LineColor | 线颜色 | R,G,B,A | 颜色取值范围在0-1.0之间,如 "0.9,0.8,0.8,1.0" |
LineWidth | 线宽度 | float | 线宽度取值范围在1-10之间 |
LineStyle | 线样式 | int | 线显示样式,可控制实线/虚线显示。取值范围-32768-32767之间。-1-实线,其他-虚线。默认-1 |
PlaneColor | 面颜色 | R,G,B,A | 颜色取值范围在0-1.0之间,如 "0.9,0.8,0.8,1.0" |
LiftUp | 抬高高度 | float | 相对高程为0位置抬高高度 |
BlockHeight | 体块拉伸高度 | float | 设置拉伸高度后,可形成体块形状。单位m,默认0 |
PlotMode | 标绘模式 | string | 标绘的编辑模式。MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置 |
IsLoad | 是否初始化加载点 | bool | 默认为false |
IsActive | 是否激活分析 | bool | 默认为true,表示是否可操作场景进行绘制 |
Points | 坐标点集 | x,y,z列表 | 需传入经度,纬度,高程坐标集,中间用;分隔,并以;结尾 |
注意:LiftUp
参数可设置整个绘制体相对地形高程为0位置的抬高高度。如果需要直接贴地形绘制,则不需要设置该项的值,或者设为小于-999999.0的值。
标绘类型
态势标绘的类型主要由PlotType
参数控制,它是一个int类型的值。具体的取值可参考下表:
标绘类型 | 标绘名称 | 标绘类型 | 标绘名称 |
---|---|---|---|
1000 | 点 | 2000 | 圆 |
2001 | 椭圆 | 2002 | 弓形 |
2003 | 扇形 | 2004 | 曲线面 |
2005 | 多边形 | 2006 | 矩形 |
2008 | 聚集地 | 2100 | 钳击 |
2101 | 直箭头 | 2102 | 细直箭头 |
2103 | 突击方向 | 2104 | 进攻方向 |
2105 | 进攻方向(尾) | 2106 | 分队战斗行动 |
2107 | 分队战斗行动(尾) | -- | -- |
获取结果说明
几何图形绘制可以通过图层对象的GetLayerResult() 方法获取结果。获取的结果值对象参数如下表所示:
配置项 | 配置说明 | 值类型 | 备注 |
---|---|---|---|
DataSourceTypeName | 数据源类型 | string | as_plot代表态势标绘 |
Points | 关键点坐标 | x,y,z列表 | 鼠标点击场景形成的关键点的经度,纬度,高程坐标列表,中间用;分隔,并以;结尾 |
代码调用示例
Javascript调用
var mySelect = document.getElementById("Select");
var layerMap = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null];
//创建态势标绘
function createPlot(){
var value = mySelect.options[mySelect.selectedIndex].value;//从下拉框中获取标绘类型。默认为0-点
if(layerMap[mySelect.selectedIndex] == null){
var mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor","1,0,0,0.6");//点颜色
mlo.AddConfig("PointSize","6");//点大小
mlo.AddConfig("LineColor", "0,1,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
mlo.AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "15");//抬高高度
mlo.AddConfig("BlockHeight","5");//体块拉升高度。默认0
mlo.AddConfig("PlotType", value);//标绘类型
mlo.AddConfig("PlotMode","MODE_DRAW");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
//是否默认加载标绘
if (false)
{
mlo.AddConfig("IsActive", "false");//是否激活分析。初始化加载点时,需要关闭激活
mlo.AddConfig("IsLoad","true");//点是否预先设置
mlo.AddConfig("Points","120.218110432,30.2112257799,19.7037040638;120.218085454,30.2113541745,14.7999680499;120.218015835,30.2114286891,14.7999725109;120.217953149,30.2113819949,14.7999559436;|");//|表示单个图层中多个同类型点集分隔,注意标绘所有关键点的高度均一致,不可设置不同的高度值
}
var plot = map.CreateLayer("AnalysisLayer", mlo);//创建分析图层,第一项参数必须为AnalysisLayer
map.AddLayer(plot);//添加分析图层
layerMap[mySelect.selectedIndex] = plot;
}else{
alert("已存在相同图层,请勿重复添加!");
}
}
//更新标绘--添加模式
function modifyPlot(){
var value = mySelect.options[mySelect.selectedIndex].value;//从下拉框中获取标绘类型。默认为0-点
var mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
if(layerMap[mySelect.selectedIndex] != null){
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor","1,0,0,0.6");//点颜色
mlo.AddConfig("PointSize","6");//点大小
mlo.AddConfig("LineColor", "0,1,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
mlo.AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "15");//抬高高度
mlo.AddConfig("BlockHeight","10");//体块拉升高度。默认0
mlo.AddConfig("PlotType", value);//标绘类型
mlo.AddConfig("PlotMode","MODE_DRAW");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
layerMap[mySelect.selectedIndex].UpdateLayerOptions(mlo);//更新标绘
}else{
alert("图层不存在,无法更新!");
}
}
//更新标绘--编辑模式
//编辑开始后,点击黄色的点可控制其位置;点击标绘表面,可整体拖拽标绘;右键为退出编辑模式
function editPlot(){
var value = mySelect.options[mySelect.selectedIndex].value;//从下拉框中获取标绘类型。默认为0-点
if(layerMap[mySelect.selectedIndex] != null){
var mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor","1,1,1,0.6");//点颜色
mlo.AddConfig("PointSize","5");//点大小
mlo.AddConfig("LineColor", "0,0,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
//mlo.AddConfig("LineStyle", "3");//线样式 1 2 3 4 5
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "30");//抬高高度
mlo.AddConfig("BlockHeight","50");//体块拉升高度。默认0
mlo.AddConfig("PlotType", value);//标绘类型
mlo.AddConfig("PlotMode","MODE_EDIT");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
layerMap[mySelect.selectedIndex].UpdateLayerOptions(mlo);//更新标绘
}else{
alert("图层不存在,无法更新!");
}
}
//获取标绘结果
function getPlotResult(){
if(layerMap[mySelect.selectedIndex] != null){
var result = layerMap[mySelect.selectedIndex].GetLayerResult();//获取图层结果
if(result.GetConfigValueByKey("DataSourceTypeName") == "as_plot"){
var points = result.GetConfigValueByKey("Points");//获取标绘结果
alert("Points:" + points);
}
}else{
alert("图层不存在,无法获取结果!");
}
}
//删除标绘
function clearPlot(){
if(layerMap[mySelect.selectedIndex] != null){
map.RemoveLayer(layerMap[mySelect.selectedIndex]);//删除标绘
layerMap[mySelect.selectedIndex] = null;
}else{
alert("图层不存在,无需删除!");
}
}
C++调用
BaseObjectCOMLib::ILayerObjectPtr plotLayer;//标绘图层
CComboBox m_combo;//下拉框对象
std::string value;//下拉框内容
std::string plotType;//标绘类型
//加载标绘
void Cf3c1PlotDlg::loadPlot()
{
ConfigOptionsCOMLib::ILayerOptionsPtr tlo = (ConfigOptionsCOMLib::ILayerOptionsPtr)map->CreateLayerOptions("plot"); //创建图层配置对象,任意名称
tlo->AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
tlo->AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
tlo->AddConfig("PointColor","1,0,0,0.6");//点颜色
tlo->AddConfig("PointSize","6");//点大小
tlo->AddConfig("LineColor", "0,1,0,0.5");//线框颜色
tlo->AddConfig("LineWidth", "10.0");//线宽(0-10)
tlo->AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
tlo->AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
tlo->AddConfig("LiftUp", "15");//抬高高度
tlo->AddConfig("BlockHeight","5");//体块拉升高度。默认0
tlo->AddConfig("PlotType", plotType.c_str());//标绘类型
tlo->AddConfig("PlotMode","MODE_DRAW");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
if (FALSE)
{
tlo->AddConfig("IsActive", "false");//是否激活分析。初始化加载点时,需要关闭激活
tlo->AddConfig("IsLoad","true");//点是否预先设置
tlo->AddConfig("Points","120.218110432,30.2112257799,19.7037040638;120.218085454,30.2113541745,14.7999680499;120.218015835,30.2114286891,14.7999725109;120.217953149,30.2113819949,14.7999559436;|");//|表示单个图层中多个同类型点集分隔,注意标绘所有关键点的高度均一致,不可设置不同的高度值
}
plotLayer = map->CreateLayer("AnalysisLayer", tlo);//创建分析图层,第一项参数必须为AnalysisLayer
map->AddLayer(plotLayer);//添加分析图层
}
//更新标绘
void Cf3c1PlotDlg::updataPlot(std::string plotMode)
{
ConfigOptionsCOMLib::ILayerOptionsPtr tlo = (ConfigOptionsCOMLib::ILayerOptionsPtr)map->CreateLayerOptions("plot"); //创建图层配置对象,任意名称
tlo->AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
tlo->AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
if(plotMode == "MODE_DRAW")
{
tlo->AddConfig("PointColor","1,0,0,0.6");//点颜色
tlo->AddConfig("PointSize","6");//点大小
tlo->AddConfig("LineColor", "0,1,0,0.5");//线框颜色
tlo->AddConfig("LineWidth", "10.0");//线宽(0-10)
tlo->AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
tlo->AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
tlo->AddConfig("LiftUp", "15");//抬高高度
tlo->AddConfig("BlockHeight","10");//体块拉升高度。默认0
}
else if(plotMode == "MODE_EDIT")
{
tlo->AddConfig("PointColor","1,1,1,0.6");//点颜色
tlo->AddConfig("PointSize","5");//点大小
tlo->AddConfig("LineColor", "0,0,0,0.5");//线框颜色
tlo->AddConfig("LineWidth", "10.0");//线宽(0-10)
//tlo->AddConfig("LineStyle", "3");//线样式 1 2 3 4 5
tlo->AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
tlo->AddConfig("LiftUp", "30");//抬高高度
tlo->AddConfig("BlockHeight","50");//体块拉升高度。默认0
}
else
{
return;
}
tlo->AddConfig("PlotType", plotType.c_str());//标绘类型
tlo->AddConfig("PlotMode",plotMode.c_str());//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
plotLayer->UpdateLayerOptions(tlo);//更新标绘
}
//获取标绘类型
void Cf3c1PlotDlg::OnCbnSelchangeCombo1()
{
CString m_paramname;
m_combo.GetLBText(m_combo.GetCurSel(),m_paramname);
value = CT2A(m_paramname.GetBuffer());
if(value =="点")
{
plotType = "1000";
}
else if(value =="圆")
{
plotType = "2000";
}
else if(value =="椭圆")
{
plotType = "2001";
}
else if(value =="弓形")
{
plotType = "2002";
}
else if(value =="扇形")
{
plotType = "2003";
}
else if(value =="曲线面")
{
plotType = "2004";
}
else if(value =="多边形")
{
plotType = "2005";
}
else if(value =="矩形")
{
plotType = "2006";
}
else if(value =="聚集地")
{
plotType = "2008";
}
else if(value =="钳击")
{
plotType = "2100";
}
else if(value =="直箭头")
{
plotType = "2101";
}
else if(value =="细直箭头")
{
plotType = "2102";
}
else if(value =="突击方向")
{
plotType = "2103";
}
else if(value =="进攻方向")
{
plotType = "2104";
}
else if(value =="进攻方向(尾)")
{
plotType = "2105";
}
else if(value =="分队战斗行动")
{
plotType = "2106";
}
else if(value =="分队战斗行动(尾)")
{
plotType = "2107";
}
}
//获取下拉框内容
void Cf3c1PlotDlg::OnCbnSetfocusCombo1()
{
m_combo.ResetContent();//清空下拉框
m_combo.AddString(L"点");
m_combo.AddString(L"圆");
m_combo.AddString(L"椭圆");
m_combo.AddString(L"弓形");
m_combo.AddString(L"扇形");
m_combo.AddString(L"曲线面");
m_combo.AddString(L"多边形");
m_combo.AddString(L"矩形");
m_combo.AddString(L"聚集地");
m_combo.AddString(L"钳击");
m_combo.AddString(L"直箭头");
m_combo.AddString(L"细直箭头");
m_combo.AddString(L"突击方向");
m_combo.AddString(L"进攻方向");
m_combo.AddString(L"进攻方向(尾)");
m_combo.AddString(L"分队战斗行动");
m_combo.AddString(L"分队战斗行动(尾)");
m_combo.SetCurSel(-1);
}
//创建标绘
void Cf3c1PlotDlg::OnBnClickedcreateplot()
{
if(plotLayer)
{
return;
}
loadPlot();
}
//开启标绘添加模式
void Cf3c1PlotDlg::OnBnClickedmodifyplot()
{
if(!plotLayer)
{
return;
}
updataPlot("MODE_DRAW");
}
//开启标绘编辑模式
void Cf3c1PlotDlg::OnBnClickededitplot()
{
if(!plotLayer)
{
return;
}
updataPlot("MODE_EDIT");
}
//获取标绘结果
void Cf3c1PlotDlg::OnBnClickedgetplotresult()
{
if(!plotLayer)
{
return;
}
ConfigOptionsCOMLib::ILayerOptionsPtr opt = plotLayer->GetLayerResult();
std::string DataSourceTypeName = opt->GetConfigValueByKey("DataSourceTypeName");//获取数据源类型
if(DataSourceTypeName == "as_plot")
{
CString Points = opt->GetConfigValueByKey("Points");//获取标绘坐标
MessageBox(L"Points:"+ Points);
}
}
//删除标绘
void Cf3c1PlotDlg::OnBnClickedclearplot()
{
if(!plotLayer)
{
return;
}
map->RemoveLayer(plotLayer);//删除标绘
plotLayer = NULL;
}
C#调用
ILayerObject[] layerMap = {null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null};//标绘对象
//获取标绘类型
private void GetPlotType()
{
Console.WriteLine("Text:" + comboBox1.SelectedItem.ToString());
switch (comboBox1.SelectedItem.ToString())
{
case "点":
plotType = 1000;
plotIndex = 0;
break;
case "圆":
plotType = 2000;
plotIndex = 1;
break;
case "椭圆":
plotType = 2001;
plotIndex = 2;
break;
case "弓形":
plotType = 2002;
plotIndex = 3;
break;
case "扇形":
plotType = 2003;
plotIndex = 4;
break;
case "曲线面":
plotType = 2004;
plotIndex = 5;
break;
case "多边形":
plotType = 2005;
plotIndex = 6;
break;
case "矩形":
plotType = 2006;
plotIndex = 7;
break;
case "聚集地":
plotType = 2008;
plotIndex = 8;
break;
case "钳击":
plotType = 2100;
plotIndex = 9;
break;
case "直箭头":
plotType = 2101;
plotIndex = 10;
break;
case "细直箭头":
plotType = 2102;
plotIndex = 11;
break;
case "突击方向":
plotType = 2103;
plotIndex = 12;
break;
case "进攻方向":
plotType = 2104;
plotIndex = 13;
break;
case "进攻方向(尾)":
plotType = 2105;
plotIndex = 14;
break;
case "分队战斗行动":
plotType = 2106;
plotIndex = 15;
break;
case "分队战斗行动(尾)":
plotType = 2107;
plotIndex = 16;
break;
}
}
//加载态势标绘
private void loadPlot()
{
if (layerMap[plotIndex] == null)
{
var mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor", "1,0,0,0.6");//点颜色
mlo.AddConfig("PointSize", "6");//点大小
mlo.AddConfig("LineColor", "0,1,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
mlo.AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "15");//抬高高度
mlo.AddConfig("BlockHeight", "5");//体块拉升高度。默认0
mlo.AddConfig("PlotType", plotType.ToString());//标绘类型
mlo.AddConfig("PlotMode", "MODE_DRAW");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
//以下6个参数对钳击、进攻方向、进攻方向(尾)、分队战斗行动和分队战斗行动(尾)起效
mlo.AddConfig("HeadHeightCtrl", "0.18");//进攻方向箭头长度控制因子,默认值0.18
mlo.AddConfig("HeadWidthCtrl", "0.3");//进攻方向箭头宽度控制因子,默认值0.3
mlo.AddConfig("NeckHeightCtrl", "0.85");//进攻方向脖子长度控制因子,默认值0.85
mlo.AddConfig("NeckWidthCtrl", "0.15");//进攻方向脖子宽度控制因子,默认值0.15
mlo.AddConfig("TailHeightCtrl", "0.8");//进攻方向箭头尾部长度控制因子,默认值0.8
mlo.AddConfig("TailWidthCtrl", "0.1");//进攻方向箭头尾部宽度控制因子,默认值0.1
if (false)
{
mlo.AddConfig("IsActive", "false");//是否激活分析。初始化加载点时,需要关闭激活
mlo.AddConfig("IsLoad", "true");//点是否预先设置
mlo.AddConfig("Points", "120.218110432,30.2112257799,19.7037040638;120.218085454,30.2113541745,14.7999680499;120.218015835,30.2114286891,14.7999725109;120.217953149,30.2113819949,14.7999559436;|");//|表示单个图层中多个同类型点集分隔,注意标绘所有关键点的高度均一致,不可设置不同的高度值
}
var plot = map.CreateLayer("AnalysisLayer", mlo);//创建分析图层,第一项参数必须为AnalysisLayer
map.AddLayer(plot);//添加分析图层
layerMap[plotIndex] = plot;
}
else
{
MessageBox.Show("已存在相同图层,请勿重复添加!");
}
}
//创建标绘
private void createPlot_Click(object sender, EventArgs e)
{
GetPlotType();
loadPlot();
}
//更新标绘--添加模式
private void modifyPlot_Click(object sender, EventArgs e)
{
GetPlotType();
ILayerOptions mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
if (layerMap[plotIndex] != null)
{
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor", "1,0,0,0.6");//点颜色
mlo.AddConfig("PointSize", "6");//点大小
mlo.AddConfig("LineColor", "0,1,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
mlo.AddConfig("LineStyle", "0");//线样式。0-实线;1-虚线
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "15");//抬高高度
mlo.AddConfig("BlockHeight", "10");//体块拉升高度。默认0
mlo.AddConfig("PlotType", plotType.ToString());//标绘类型
mlo.AddConfig("PlotMode", "MODE_DRAW");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
layerMap[plotIndex].UpdateLayerOptions(mlo);//更新标绘
}
else
{
MessageBox.Show("图层不存在,无法更新!");
}
}
//开启标绘编辑模式
private void editPlot_Click(object sender, EventArgs e)
{
GetPlotType();
if (layerMap[plotIndex] != null)
{
var mlo = map.CreateLayerOptions("plot");//创建图层配置对象,任意名称
mlo.AddConfig("LayerOptionsName", "AnalysisLayerOptions");//图层配置对象名称, AnalysisLayerOptions代表分析图层数据配置
mlo.AddConfig("DataSourceTypeName", "as_plot");//数据源类型,as_plot代表态势标绘
mlo.AddConfig("PointColor", "1,1,1,0.6");//点颜色
mlo.AddConfig("PointSize", "5");//点大小
mlo.AddConfig("LineColor", "0,0,0,0.5");//线框颜色
mlo.AddConfig("LineWidth", "10.0");//线宽(0-10)
//mlo.AddConfig("LineStyle", "3");//线样式 1 2 3 4 5
mlo.AddConfig("PlaneColor", "1,1,0.5,0.5");//面颜色
mlo.AddConfig("LiftUp", "30");//抬高高度
mlo.AddConfig("BlockHeight", "50");//体块拉升高度。默认0
mlo.AddConfig("PlotType", plotType.ToString());//标绘类型
mlo.AddConfig("PlotMode", "MODE_EDIT");//MODE_EDIT-编辑模式;MODE_DRAW-绘制模式;MODE_NULL-默认配置
layerMap[plotIndex].UpdateLayerOptions(mlo);//更新标绘
}
else
{
MessageBox.Show("图层不存在,无法更新!");
}
}
//获取标绘结果
private void getPlotResult_Click(object sender, EventArgs e)
{
GetPlotType();
if (layerMap[plotIndex] != null)
{
ILayerOptions result = layerMap[plotIndex].GetLayerResult();//获取图层结果
if (result.GetConfigValueByKey("DataSourceTypeName") == "as_plot")
{
string points = result.GetConfigValueByKey("Points");//获取标绘结果
MessageBox.Show("Points:" + points);
}
}
else
{
MessageBox.Show("图层不存在,无法获取结果!");
}
}
//删除标绘
private void clearPlot_Click(object sender, EventArgs e)
{
GetPlotType();
if (layerMap[plotIndex] != null)
{
map.RemoveLayer(layerMap[plotIndex]);//删除标绘
layerMap[plotIndex] = null;
}
else
{
MessageBox.Show("图层不存在,无需删除!");
}
}