# HG changeset patch # User Sebastian Kruse # Date 1362663330 -3600 # Node ID 108c853e090092fb5a0766fb6efad772140814c0 # Parent 00f7860d9ee5f41cb5439c2d833f166e08a242dc CSV to KML conversion moved to seperate function diff -r 00f7860d9ee5 -r 108c853e0900 war/scripts/sti/STICore.js --- a/war/scripts/sti/STICore.js Fri Feb 01 17:21:47 2013 +0100 +++ b/war/scripts/sti/STICore.js Thu Mar 07 14:35:30 2013 +0100 @@ -605,8 +605,93 @@ }, /** - * converts the csv-file, then parses the kml-file which includes the - * results for a given search request + * converts the csv-file to a kml-file + * + * @param {String} + * text + */ + convertCsv: function(text){ + + var status = document.getElementById("statusText"); + status.innerHTML = "Converting CSV to KML ..."; + /* convert here from csv to kml */ + var kmlString = '\n'; + kmlString += '\n'; + kmlString += '\t\n'; + /* define expected csv table headers (first line) */ + var expectedHeaders = new Array("Name","Address","Description","Longitude","Latitude","TimeStamp","TimeSpan:begin","TimeSpan:end"); + /* convert csv string to array of arrays using ucsv library */ + var csvArray = CSV.csvToArray(text); + /* get real used table headers from csv file (first line) */ + var usedHeaders = csvArray[0]; + /* loop outer array, begin with second line */ + for (var i = 1; i < csvArray.length; i++) { + var innerArray = csvArray[i]; + kmlString += '\t\t\n'; + /* declare few variables */ + var timespanBegin = ""; + var timespanEnd = ""; + var longitude = ""; + var latitude = ""; + /* loop inner array */ + for (var j = 0; j < innerArray.length; j++) { + /* Name */ + if (usedHeaders[j] == expectedHeaders[0]) { + kmlString += '\t\t\t' + innerArray[j] + '\n'; + } + /* Address */ + if (usedHeaders[j] == expectedHeaders[1]) { + kmlString += '\t\t\t
' + innerArray[j] + '
\n'; + } + /* Description */ + if (usedHeaders[j] == expectedHeaders[2]) { + kmlString += '\t\t\t' + innerArray[j] + '\n'; + } + /* TimeStamp */ + if (usedHeaders[j] == expectedHeaders[5]) { + kmlString += '\t\t\t\n' + + '\t\t\t\t' + innerArray[j] + '\n' + + '\t\t\t\n'; + } + /* TimeSpan:begin */ + if (usedHeaders[j] == expectedHeaders[6]) { + timespanBegin = innerArray[j]; + } + /* TimeSpan:end */ + if (usedHeaders[j] == expectedHeaders[7]) { + timespanEnd = innerArray[j]; + } + /* Longitude */ + if (usedHeaders[j] == expectedHeaders[3]) { + longitude = innerArray[j]; + } + /* Latitude */ + if (usedHeaders[j] == expectedHeaders[4]) { + latitude = innerArray[j]; + } + } + /* set timespan:begin und timespan:end */ + kmlString += '\t\t\t\n' + + '\t\t\t\t' + timespanBegin + '\n' + + '\t\t\t\t' + timespanEnd + '\n' + + '\t\t\t\n'; + /* set longitude and latitude */ + kmlString += '\t\t\t\n' + + '\t\t\t\t' + + longitude +',' + latitude + + '\n' + + '\t\t\t\n'; + /* end Placemark */ + kmlString += '\t\t
\n'; + } + kmlString += '\t
\n'; + kmlString += '
\n'; + + return kmlString; + }, + + /** + * loads the csv-file * * @param {File} * csvFile @@ -631,78 +716,8 @@ var status = document.getElementById("statusText"); status.innerHTML = "Converting CSV to KML ..."; /* convert here from csv to kml */ - var kmlString = '\n'; - kmlString += '\n'; - kmlString += '\t\n'; - /* define expected csv table headers (first line) */ - var expectedHeaders = new Array("Name","Address","Description","Longitude","Latitude","TimeStamp","TimeSpan:begin","TimeSpan:end"); - /* convert csv string to array of arrays using ucsv library */ - var csvArray = CSV.csvToArray(text); - /* get real used table headers from csv file (first line) */ - var usedHeaders = csvArray[0]; - /* loop outer array, begin with second line */ - for (var i = 1; i < csvArray.length; i++) { - var innerArray = csvArray[i]; - kmlString += '\t\t\n'; - /* declare few variables */ - var timespanBegin = ""; - var timespanEnd = ""; - var longitude = ""; - var latitude = ""; - /* loop inner array */ - for (var j = 0; j < innerArray.length; j++) { - /* Name */ - if (usedHeaders[j] == expectedHeaders[0]) { - kmlString += '\t\t\t' + innerArray[j] + '\n'; - } - /* Address */ - if (usedHeaders[j] == expectedHeaders[1]) { - kmlString += '\t\t\t
' + innerArray[j] + '
\n'; - } - /* Description */ - if (usedHeaders[j] == expectedHeaders[2]) { - kmlString += '\t\t\t' + innerArray[j] + '\n'; - } - /* TimeStamp */ - if (usedHeaders[j] == expectedHeaders[5]) { - kmlString += '\t\t\t\n' + - '\t\t\t\t' + innerArray[j] + '\n' + - '\t\t\t\n'; - } - /* TimeSpan:begin */ - if (usedHeaders[j] == expectedHeaders[6]) { - timespanBegin = innerArray[j]; - } - /* TimeSpan:end */ - if (usedHeaders[j] == expectedHeaders[7]) { - timespanEnd = innerArray[j]; - } - /* Longitude */ - if (usedHeaders[j] == expectedHeaders[3]) { - longitude = innerArray[j]; - } - /* Latitude */ - if (usedHeaders[j] == expectedHeaders[4]) { - latitude = innerArray[j]; - } - } - /* set timespan:begin und timespan:end */ - kmlString += '\t\t\t\n' + - '\t\t\t\t' + timespanBegin + '\n' + - '\t\t\t\t' + timespanEnd + '\n' + - '\t\t\t\n'; - /* set longitude and latitude */ - kmlString += '\t\t\t\n' + - '\t\t\t\t' + - longitude +',' + latitude + - '\n' + - '\t\t\t\n'; - /* end Placemark */ - kmlString += '\t\t
\n'; - } - kmlString += '\t
\n'; - kmlString += '
\n'; - console.log("kmlstring="+kmlString); + var kmlString = convertCsv(text); + /* convert string to xml */ var kmlXml = $.parseXML(kmlString); console.log(kmlXml);