在易景地球平台里实现如何用C#语言添加一个矢量面呢?
代码如下:
//新建线对象
IPlaceMark poly = new PlaceMarkClass();
poly.Name = "测试面";
//新建的线对象需要添加到矢量对象管理器中才能显示
IEVObjectManager kmlmanager = (EarthContorl.Scene.EvEarthScene as IEvEarthScene).KmlManager as IEVObjectManager;
kmlmanager.Features.AppendChild(poly);
几何数据/
//新建 面几何体
IPolygon ls = new EVPolygon();
//填充面的外边界数据
for (int i = 0; i < 100; i++)
{
//新建一个点
EGCoord ec = new EGCoord();
//根据具体的数据更改这个坐标值
ec.Latitude = 103.3;
ec.Longitude = 39.1;
ls.OuterBoundary.Coordinates.AppendChild(ec);
}
//把面几何体赋予对象
poly.Geometry = ls;
///样式数据//
//新建样式对象
IStyle s = new style();
//设置面需要填充
s.PolyStyle.Fill = true;
//设置面样式 颜色为蓝色
s.PolyStyle.Color.R = 0;
s.PolyStyle.Color.G = 0;
s.PolyStyle.Color.B = 255;
//设置面不透明
s.PolyStyle.Color.A = 255;
//显示面的外边界
s.PolyStyle.OutLine = true;
//修改外边界颜色为红色
s.LineStyle.Color.R = 255;
s.LineStyle.Color.G = 0;
s.LineStyle.Color.B = 0;
//设置外边界透明度
s.LineStyle.Color.A = 255;
//设置外边界宽度为3个像素
s.LineStyle.Width = 3;
//把样式赋予对象
poly.StyleSelector = s;
====================================================
如何设置对象的高程模式
IPolygon等对象中都有高程模式属性
如:
IPolygon.AltitudeMode
该属性的类型如下:
/**
*高程模式
*/
enum EVAltitudeMode
{
/**
*贴近地表
*/
EVAltitudeMode_Clamp_To_Ground,
/**
*相对地表
*/
EVAltitudeMode_Relative_To_Ground,
/**
*绝对高程
*/
EVAltitudeMode_Absolute,
};
---------------------------------------------------------------------------------
根据上面说明的属性内容就可以设置不同的高程模式了
=============================================
下面的代码是Lua语言的代码,可以直接运行,供参考:
--------------------------------------------------------------------------------------
--新建线对象
local poly = evKmlMgr:Create("PlaceMark");
poly.Name = "测试面";
--新建的线对象需要添加到矢量对象管理器中才能显示
local kmlmanager = evKmlMgr;
kmlmanager.Features:AppendChild(poly);
--几何数据/
--新建 面几何体
local ls = evKmlMgr:Create("EVPolygon");
--填充面的外边界数据
for i = 1,10 do
-- 新建一个点
local ec = evKmlMgr:Create("EGCoord");
--根据具体的数据更改这个坐标值
ec.Latitude = 30 + i; --纬度坐标
ec.Longitude = 139 + i; --经度坐标
ls.OuterBoundary.Coordinates:AppendChild(ec);
end
--把面几何体赋予对象
poly.Geometry = ls;
--///样式数据//
--新建样式对象
local s = evKmlMgr:Create("Style");
--设置面需要填充
s.PolyStyle.Fill = true;
--设置面样式 颜色为蓝色
s.PolyStyle.Color.R = 0;
s.PolyStyle.Color.G = 0;
s.PolyStyle.Color.B = 255;
--设置面不透明
s.PolyStyle.Color.A = 255;
--显示面的外边界
s.PolyStyle.OutLine = true;
--修改外边界颜色为红色
s.LineStyle.Color.R = 255;
s.LineStyle.Color.G = 0;
s.LineStyle.Color.B = 0;
--设置外边界透明度
s.LineStyle.Color.A = 255;
--设置外边界宽度为3个像素
s.LineStyle.Width = 3;
--把样式赋予对象
poly.StyleSelector = s;
-------------------------------------------------------------------------