STK&MATLAB connect(二)区域目标

创建一个区域目标(在当前场景的中心体上)

root.ExecuteCommand('New / */AreaTarget MyAreaTarget');

帮助文档中可见命令的详细解释:


从一个纬度/长度/高度的列表中定义区域目标的边界和位置

root.ExecuteCommand('SetBoundary */AreaTarget/MyAreaTarget Pattern LatLon 3 48.897 18.637 46.534 13.919 44.147 21.476');

这里详细解释一下这个命令:

SetBoundary <ATObjectPath> {Type} <Parameters>

这个就是 SetBoundary命令的形式,其中<ATObjectPath>对应着例子中的*/AreaTarget/MyAreaTarget,以表明对谁进行操作,Type有如下类型:

{Type}<Parameter>
Pattern[{PointType}] <NumPoints> {PointDefn}
Ellipse<SemiMajorAxis> <SemiMinorAxis> <Bearing>

这里以Pattern为例(Ellipse其实就是椭圆,参数也很简单,两个距离一个角度,给出一个例子,如下),如果{Type}是<Pattern>,所定义的区域将通过连接第一个到最后一个点;<NumPoints>就是点的个数;其实{PointType}还有一种UTM,大家可以自己探索

root.ExecuteCommand('SetUnits / km'); %Default Connect Units are meters
root.ExecuteCommand('SetBoundary */AreaTarget/MyAreaTarget Ellipse 85.25 80.75 44');
{PointType}{PointDefn}Description
LatLon<Latitude> <Longitude>输入每个点的纬度和经度,默认单位是度


列出一个区域目标中的所有点,返回一个白空间分隔的字符向量

patternPoints = root.ExecuteCommand('GetBoundary */AreaTarget/MyAreaTarget');


打印出所有的点

%String的格式为'48.897000 deg 18.637000 deg',所以需要第一和第三元素,因为MATLAB标准分隔符是空格
for j = 1:patternPoints.Count - 1
LLAData = strread(patternPoints.Item(j), '%s');
fprintf(['Lat: ' LLAData{1} ' deg Lon: ' LLAData{3} ' deg \n\n']);
end

应用

uiap = actxserver('STK11.application');
root = uiap.Personality2;
root.NewScenario('mysce');
scen = root.CurrentScenario;
root.ExecuteCommand('New / */AreaTarget MyAreaTarget');
root.ExecuteCommand('SetBoundary */AreaTarget/MyAreaTarget Pattern LatLon 3 48.897 18.637 46.534 13.919 44.147 21.476');
patternPoints = root.ExecuteCommand('GetBoundary */AreaTarget/MyAreaTarget');
for j = 1:patternPoints.Count - 1
LLAData = strread(patternPoints.Item(j), '%s');
fprintf(['Lat: ' LLAData{1} ' deg Lon: ' LLAData{3} ' deg \n\n']);
end

结果如图:

 

 


 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值