看了以下之前发的博文,大家对于单个的对象都不太感冒。那就尽量结合案例分析来说明,这个案例也是从AGI官网参考来的。对AreaTarget进行操作,下面上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘AreaTarget’);
sc = root.CurrentScenario;
%加几个语句,设置一下单位
root.UnitPreferences.Item(‘DateFormat’).SetCurrentUnit(‘EpSec’);
root.UnitPreferences.Item(‘Latitude’).SetCurrentUnit(‘deg’);
root.UnitPreference.Item(‘Longitude’).SetCurrentUnit(‘deg’);
root.UnitPreferences.SetCurrentUnit(‘Distance’,‘m’);
areaTarget = sc.Children.New(‘eAreaTarget’,‘USA’);
%设置面目标类型
areaTarget.AreaType = ‘ePattern’;
%读取点坐标
ptlatlon = xlsread(‘E:\temp\ImportAreaTarget\USA.xlsx’);
%向AreaTarget添加元素
%BeginUpdate/EndUpdate 避免单个点的更新,我尝试过不用这个语句,运
%行的特别慢
root.BeginUpdate();
for i = 1:length(ptlatlon(:,1))
areaTarget.AreaTypeData.Add(ptlatlon(i,2),ptlatlon(i,1));
end
root.EndUpdate();
areaTarget.AutoCentroid = true;
上面的代码都运行过,没问题。用到的Excel文件,可以下载我上传的资料。