我需要用malab以kml文件格式写行,这一行是多色的,根据信号水平还是多行不连续?通过使用'kmlwriteline‘,可以用一种颜色写一条线,但我需要根据信号级别或3色(红色、绿色、黄色)绘制不同颜色的线条。
发布于 2014-12-08 09:28:24
有两种方法可以做到这一点。首先,您可以得到函数这里或kmlwrite()函数,并可以使用其颜色说明。
第二,您可以生成您的一种颜色线,并可以打开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);我得到的是:

我希望这将是有用的。
https://stackoverflow.com/questions/27354823
复制相似问题