skyline terra explorer pro C# 动态路线转移 代码 没有错,运行后报错

qq_36063215 2016-09-07 10:10:19
private void 路线1ToolStripMenuItem_Click(object sender, EventArgs e)
{
int itemid = sgworld.ProjectTree.FindItem("路线1");//找信息树ID

ITerraExplorerObject66 obj = (ITerrainDynamicObject66)sgworld.ProjectTree.GetObject(itemid);//获取线对象

ITerrainPolyline66 line66 = (ITerrainPolyline66)obj;//取线的点串,首先把动态线转为Polyline
ILineString Is = line66.Geometry as ILineString;//转点串
dynamic array = (System.Array)Is.Points.ToArray();//使用Arry接口,存放XYZ值
IRouteWaypoint66 waypoint = (IRouteWaypoint66)sgworld.Creator.CreateRouteWaypoint();
ITerrainDynamicObject66 dyobj = (ITerrainDynamicObject66)sgworld.Creator.CreateDynamicObject(waypoint);//创建一个空对象
for (int i = 0; i < array.Length / 3; i = +1)
{
dyobj.Waypoints.AddWaypoint(sgworld.Creator.CreateRouteWaypoint(
Convert.ToDouble(array[3 * 1]),
Convert.ToDouble(array[3 * 1 + 1]),
Convert.ToDouble(array[3 * 1 + 2]))
);

}
sgworld.Navigate.FlyTo(dyobj);

}

ITerraExplorerObject66 obj = (ITerrainDynamicObject66)sgworld.ProjectTree.GetObject(itemid); 运行时这句报错“无效的条目”
...全文
175 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45694531 2019-11-15
  • 打赏
  • 举报
回复
ITerraExplorerObject66 obj = (ITerrainDynamicObject66)sgworld.ProjectTree.GetObject(itemid);
已经强制转换了,应改为
ITerrainDynamicObject66 obj = (ITerrainDynamicObject66)sgworld.ProjectTree.GetObject(itemid);

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧