Commit 80db8ac3 authored by Daniel Bodmer's avatar Daniel Bodmer
Browse files

Upload New File

parent 1e5638c8
%**************************************************************************
% * Programmiersprache MATLAB
% * Dateiname: generateManyKML.m
%
% * Initialisierung und Aufruf der TCM-Subroutinen
%
%
% ******************************** Inputs *********************************
% * punkte: Matrix, die alle relevanten Informationen zur Darstellung
% * der Trajektorie mit Googlemaps beinhaltet
% * filename: Dateiname
% * uhrzeit: Abflugzeit
%
% ******************************** Outputs ********************************
% * flag: Rckgabewert der Dateispeicherung. 0 wenn erfolgreich, -1
% * wenn fehlgeschlagen.
%
%
% * Einrichtung/Autoren: DLR-LY/F.Linke/B.Lhrs
% * Bearbeitungszustand: in Bearbeitung
% * Version: 1.0
% * Datum: 11032013
% * Letzte nderung: Kommentare hinzugefgt
%**************************************************************************
%**************************************************************************
%****************************Copyright (C) 2011****************************
%************DLR Deutsches Zentrum fuer Luft- und Raumfahrt e.V.***********
%************************German Aerospace Center e.V. *********************
%********************Institut fuer Lufttransportsysteme/*******************
%******************Institute of Air Transportation Systems*****************
%***************Tel. +49 531 295 3801, Fax: +49 531 295 2979***************
%
% www.dlr.de/ly
% www.tu-harburg.de/ilt
%
%* These coded instructions, statements, and computer programs contain****
%* unpublished proprietary information of the German Aerospace Center*****
%* e.V. and are protected by the copyright law. They may not be***********
%* disclosed to third parties or copied or duplicated in any form,********
%* in whole or in part, without the prior written consent of the German***
%* Aerospace Center e.V.**************************************************
%**************************************************************************
function flag = generateManyKML(punkte,filename,uhrzeit)
howmany=size(punkte,1); % Anzahl der Datenpunkte
date=datestr(floor(now),'yyyy-mm-dd'); % Aktuelle Zeit auslesen
%starttime=rem(now,1);
starttime=datenum(uhrzeit,'HH:MM:SS'); % Starttime als String
% KML Dokument erstellen
% Grundstruktur
fid=fopen(filename,'wt');
fprintf(fid,'%s\n','<?xml version="1.0" encoding="UTF-8"?>');
fprintf(fid,'%s\n','<kml xmlns="http://www.opengis.net/kml/2.2"');
fprintf(fid,'%s\n','xmlns:gx="http://www.google.com/kml/ext/2.2">');
fprintf(fid,'%s\n','<Document>');
fprintf(fid,'%s\n','<name>FlightTour</name>');
fprintf(fid,'%s\n','<open>1</open>');
fprintf(fid,'%s\n','<gx:Tour>');
fprintf(fid,'%s\n','<name>Fly!</name>');
fprintf(fid,'%s\n','<gx:Playlist>');
% Erster Punkt
fprintf(fid,'%s\n','<gx:FlyTo>');
fprintf(fid,'%s\n','<gx:duration>5.0</gx:duration>');
fprintf(fid,'%s\n','<gx:flyToMode>bounce</gx:flyToMode>');
fprintf(fid,'%s\n','<Camera>');
fprintf(fid,'%s\n','<gx:TimeStamp>'); %Time!
fillstr=strcat('<when>',date,'T',datestr(starttime,'HH:MM:SS'),'Z','</when>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','</gx:TimeStamp>');
fillstr=strcat('<longitude>',num2str(punkte(1,3),'%9.6f'),'</longitude>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<latitude>',num2str(punkte(1,2),'%9.6f'),'</latitude>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<altitude>',num2str(punkte(1,4),'%10.4f'),'</altitude>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','<altitudeMode>absolute</altitudeMode>');
fillstr=strcat('<heading>',num2str(punkte(1,5),'%5.2f'),'</heading>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','<tilt>80</tilt>');
fprintf(fid,'%s\n','<roll>0</roll>');
fprintf(fid,'%s\n','</Camera>');
fprintf(fid,'%s\n','</gx:FlyTo>');
fprintf(fid,'%s\n','<gx:Wait>'); %wait!
fprintf(fid,'%s\n','<gx:duration>3.0</gx:duration>');
fprintf(fid,'%s\n','</gx:Wait>');
% Alle restlichen Punkte
for i=2:(howmany-1)
fprintf(fid,'%s\n','<gx:FlyTo>');
dauer=punkte(i,1)-punkte(i-1,1);
fillstr=strcat('<gx:duration>',num2str(dauer,'%6.1f'),'</gx:duration>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','<gx:flyToMode>smooth</gx:flyToMode>');
fprintf(fid,'%s\n','<Camera>');
fprintf(fid,'%s\n','<gx:TimeStamp>'); %Time!
fillstr=strcat('<when>',date,'T',datestr(starttime+punkte(i,1)/86400,'HH:MM:SS'),'Z','</when>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','</gx:TimeStamp>');
fillstr=strcat('<longitude>',num2str(punkte(i,3),'%9.6f'),'</longitude>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<latitude>',num2str(punkte(i,2),'%9.6f'),'</latitude>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<altitude>',num2str(punkte(i,4),'%10.4f'),'</altitude>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','<altitudeMode>absolute</altitudeMode>');
fillstr=strcat('<heading>',num2str(punkte(i,5),'%5.2f'),'</heading>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<tilt>',num2str(80+punkte(i,6),'%3.1f'),'</tilt>');
fprintf(fid,'%s\n',fillstr);
fillstr=strcat('<roll>',num2str(punkte(i,7),'%3.1f'),'</roll>');
fprintf(fid,'%s\n',fillstr);
fprintf(fid,'%s\n','</Camera>');
fprintf(fid,'%s\n','</gx:FlyTo>');
end
% Weitere Definitionen
fprintf(fid,'%s\n','</gx:Playlist>');
fprintf(fid,'%s\n','</gx:Tour>');
fprintf(fid,'%s\n','<Folder>');
fprintf(fid,'%s\n','<name>Trajectory</name>');
fprintf(fid,'%s\n','<Style id="TrajColor">');
fprintf(fid,'%s\n','<LineStyle>');
fprintf(fid,'%s\n','<color>000000ff</color>');
fprintf(fid,'%s\n','</LineStyle>');
fprintf(fid,'%s\n','<PolyStyle>');
fprintf(fid,'%s\n','<color>550000ff</color>');
fprintf(fid,'%s\n','</PolyStyle>');
fprintf(fid,'%s\n','</Style>');
fprintf(fid,'%s\n','<Placemark>');
fprintf(fid,'%s\n','<name>Flug</name>');
fprintf(fid,'%s\n','<visibility>1</visibility>');
fprintf(fid,'%s\n','<description>Geflogene Route</description>');
fprintf(fid,'%s\n','<styleUrl>#TrajColor</styleUrl>');
fprintf(fid,'%s\n','<LineString>');
fprintf(fid,'%s\n','<extrude>1</extrude>');
fprintf(fid,'%s\n','<tessellate>1</tessellate>');
fprintf(fid,'%s\n','<altitudeMode>absolute</altitudeMode>');
fprintf(fid,'%s\n','<coordinates>');
for i=1:(howmany-1)
CoordStr=strcat(num2str(punkte(i,3),'%9.6f'),',',num2str(punkte(i,2),'%9.6f'),',',num2str(punkte(i,4),'%10.4f'));
fprintf(fid,'%s\n',CoordStr);
end
fprintf(fid,'%s\n','</coordinates>');
fprintf(fid,'%s\n','</LineString>');
fprintf(fid,'%s\n','</Placemark>');
fprintf(fid,'%s\n','</Folder>');
fprintf(fid,'%s\n','</Document>');
fprintf(fid,'%s\n','</kml>');
flag=fclose(fid);
%endfunction
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment