Mercurial > hg > STI-GWT
changeset 85:108c853e0900 trimmed_data
CSV to KML conversion moved to seperate function
author | Sebastian Kruse <skruse@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 07 Mar 2013 14:35:30 +0100 |
parents | 00f7860d9ee5 |
children | ed444173aef0 |
files | war/scripts/sti/STICore.js |
diffstat | 1 files changed, 89 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- 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 = '<?xml version="1.0" standalone="yes"?>\n'; + kmlString += '<kml xmlns="http://www.opengis.com/kml/ext/2.2">\n'; + kmlString += '\t<Folder>\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<Placemark>\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<name>' + innerArray[j] + '</name>\n'; + } + /* Address */ + if (usedHeaders[j] == expectedHeaders[1]) { + kmlString += '\t\t\t<address>' + innerArray[j] + '</address>\n'; + } + /* Description */ + if (usedHeaders[j] == expectedHeaders[2]) { + kmlString += '\t\t\t<description>' + innerArray[j] + '</description>\n'; + } + /* TimeStamp */ + if (usedHeaders[j] == expectedHeaders[5]) { + kmlString += '\t\t\t<TimeStamp>\n' + + '\t\t\t\t<when>' + innerArray[j] + '</when>\n' + + '\t\t\t</TimeStamp>\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<TimeSpan>\n' + + '\t\t\t\t<begin>' + timespanBegin + '</begin>\n' + + '\t\t\t\t<end>' + timespanEnd + '</end>\n' + + '\t\t\t</TimeSpan>\n'; + /* set longitude and latitude */ + kmlString += '\t\t\t<Point>\n' + + '\t\t\t\t<coordinates>' + + longitude +',' + latitude + + '</coordinates>\n' + + '\t\t\t</Point>\n'; + /* end Placemark */ + kmlString += '\t\t</Placemark>\n'; + } + kmlString += '\t</Folder>\n'; + kmlString += '</kml>\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 = '<?xml version="1.0" standalone="yes"?>\n'; - kmlString += '<kml xmlns="http://www.opengis.com/kml/ext/2.2">\n'; - kmlString += '\t<Folder>\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<Placemark>\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<name>' + innerArray[j] + '</name>\n'; - } - /* Address */ - if (usedHeaders[j] == expectedHeaders[1]) { - kmlString += '\t\t\t<address>' + innerArray[j] + '</address>\n'; - } - /* Description */ - if (usedHeaders[j] == expectedHeaders[2]) { - kmlString += '\t\t\t<description>' + innerArray[j] + '</description>\n'; - } - /* TimeStamp */ - if (usedHeaders[j] == expectedHeaders[5]) { - kmlString += '\t\t\t<TimeStamp>\n' + - '\t\t\t\t<when>' + innerArray[j] + '</when>\n' + - '\t\t\t</TimeStamp>\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<TimeSpan>\n' + - '\t\t\t\t<begin>' + timespanBegin + '</begin>\n' + - '\t\t\t\t<end>' + timespanEnd + '</end>\n' + - '\t\t\t</TimeSpan>\n'; - /* set longitude and latitude */ - kmlString += '\t\t\t<Point>\n' + - '\t\t\t\t<coordinates>' + - longitude +',' + latitude + - '</coordinates>\n' + - '\t\t\t</Point>\n'; - /* end Placemark */ - kmlString += '\t\t</Placemark>\n'; - } - kmlString += '\t</Folder>\n'; - kmlString += '</kml>\n'; - console.log("kmlstring="+kmlString); + var kmlString = convertCsv(text); + /* convert string to xml */ var kmlXml = $.parseXML(kmlString); console.log(kmlXml);