我需要用malab写入kml文件格式的行,根据信号电平或多行不连续,这条线是多种颜色? 通过使用'kmlwriteline'可以用一种颜色写一条线,但我需要根据信号电平或不同颜色之间绘制不同颜色的线,红色,绿色,黄色 谢谢 。
答案 0 :(得分:0)
有两种方法可以做到这一点。首先,您可以获得函数here或kmlwrite()
函数,并可以使用其颜色规范。
第二个是您可以生成一个颜色线并可以使用Google地球应用程序打开kml文件,然后您可以通过右键单击线来更改线条的颜色。第二个是手动方式。
编辑:我明白了你的意思。您必须创建geoshape
个对象才能短暂执行任务。 如果您想要细分当前行,则必须使用NaN值。
现在尝试编写以下代码:
% % // import your excel file
lat = xlsread('hossain1.xlsx','data','A2:A445');
lon = xlsread('hossain1.xlsx','data','B2:B445');
Rx_Level = xlsread('hossain1.xlsx','data','C2:C445');
% Initializing some stuff
Rx = [-60 -70 -80 -90 -100];
color = ['g', 'y', 'r', 'k']; % // I adjusted the colour wrt your uploaded pic.
width = 12 : -3 : 3; % // In the pic, Rx levels have a different witdh lines.
% // Existing Geographic shape object
lines = geoshape();
len = length(lat);
for u = 2 : length(Rx)
indexWrtRxLevel = ( Rx_Level >= Rx(u) ) & ( Rx_Level < Rx(u-1) );
lines(u-1).Latitude = zeros(1, len);
lines(u-1).Longitude = zeros(1, len);
indexOfZeros = find(indexWrtRxLevel == 0);
indexOfOnes = find(indexWrtRxLevel == 1);
lines(u-1).Latitude( indexOfZeros ) = NaN;
lines(u-1).Longitude( indexOfZeros ) = NaN;
lines(u-1).Latitude( indexOfOnes ) = lat( indexOfOnes );
lines(u-1).Longitude( indexOfOnes ) = lon( indexOfOnes );
lines(u-1).Name = ['>= ', num2str(Rx(u)), ' dBm'];
lines(u-1).Color = color(u-1);
lines(u-1).Width = width(u-1);
end
filename = 'Rx Levels';
kmlwrite(filename, lines, ...
'Name', lines.Name, ...
'Color', lines.Color, ...
'Width', lines.Width);
我得到的是:
我希望这会有用。