Mercurial > hg > STI-GWT
comparison war/scripts/sti/STICore.js @ 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 | d69066d16e45 |
children | ed444173aef0 |
comparison
equal
deleted
inserted
replaced
84:00f7860d9ee5 | 85:108c853e0900 |
---|---|
603 } | 603 } |
604 }); | 604 }); |
605 }, | 605 }, |
606 | 606 |
607 /** | 607 /** |
608 * converts the csv-file, then parses the kml-file which includes the | 608 * converts the csv-file to a kml-file |
609 * results for a given search request | 609 * |
610 * @param {String} | |
611 * text | |
612 */ | |
613 convertCsv: function(text){ | |
614 | |
615 var status = document.getElementById("statusText"); | |
616 status.innerHTML = "Converting CSV to KML ..."; | |
617 /* convert here from csv to kml */ | |
618 var kmlString = '<?xml version="1.0" standalone="yes"?>\n'; | |
619 kmlString += '<kml xmlns="http://www.opengis.com/kml/ext/2.2">\n'; | |
620 kmlString += '\t<Folder>\n'; | |
621 /* define expected csv table headers (first line) */ | |
622 var expectedHeaders = new Array("Name","Address","Description","Longitude","Latitude","TimeStamp","TimeSpan:begin","TimeSpan:end"); | |
623 /* convert csv string to array of arrays using ucsv library */ | |
624 var csvArray = CSV.csvToArray(text); | |
625 /* get real used table headers from csv file (first line) */ | |
626 var usedHeaders = csvArray[0]; | |
627 /* loop outer array, begin with second line */ | |
628 for (var i = 1; i < csvArray.length; i++) { | |
629 var innerArray = csvArray[i]; | |
630 kmlString += '\t\t<Placemark>\n'; | |
631 /* declare few variables */ | |
632 var timespanBegin = ""; | |
633 var timespanEnd = ""; | |
634 var longitude = ""; | |
635 var latitude = ""; | |
636 /* loop inner array */ | |
637 for (var j = 0; j < innerArray.length; j++) { | |
638 /* Name */ | |
639 if (usedHeaders[j] == expectedHeaders[0]) { | |
640 kmlString += '\t\t\t<name>' + innerArray[j] + '</name>\n'; | |
641 } | |
642 /* Address */ | |
643 if (usedHeaders[j] == expectedHeaders[1]) { | |
644 kmlString += '\t\t\t<address>' + innerArray[j] + '</address>\n'; | |
645 } | |
646 /* Description */ | |
647 if (usedHeaders[j] == expectedHeaders[2]) { | |
648 kmlString += '\t\t\t<description>' + innerArray[j] + '</description>\n'; | |
649 } | |
650 /* TimeStamp */ | |
651 if (usedHeaders[j] == expectedHeaders[5]) { | |
652 kmlString += '\t\t\t<TimeStamp>\n' + | |
653 '\t\t\t\t<when>' + innerArray[j] + '</when>\n' + | |
654 '\t\t\t</TimeStamp>\n'; | |
655 } | |
656 /* TimeSpan:begin */ | |
657 if (usedHeaders[j] == expectedHeaders[6]) { | |
658 timespanBegin = innerArray[j]; | |
659 } | |
660 /* TimeSpan:end */ | |
661 if (usedHeaders[j] == expectedHeaders[7]) { | |
662 timespanEnd = innerArray[j]; | |
663 } | |
664 /* Longitude */ | |
665 if (usedHeaders[j] == expectedHeaders[3]) { | |
666 longitude = innerArray[j]; | |
667 } | |
668 /* Latitude */ | |
669 if (usedHeaders[j] == expectedHeaders[4]) { | |
670 latitude = innerArray[j]; | |
671 } | |
672 } | |
673 /* set timespan:begin und timespan:end */ | |
674 kmlString += '\t\t\t<TimeSpan>\n' + | |
675 '\t\t\t\t<begin>' + timespanBegin + '</begin>\n' + | |
676 '\t\t\t\t<end>' + timespanEnd + '</end>\n' + | |
677 '\t\t\t</TimeSpan>\n'; | |
678 /* set longitude and latitude */ | |
679 kmlString += '\t\t\t<Point>\n' + | |
680 '\t\t\t\t<coordinates>' + | |
681 longitude +',' + latitude + | |
682 '</coordinates>\n' + | |
683 '\t\t\t</Point>\n'; | |
684 /* end Placemark */ | |
685 kmlString += '\t\t</Placemark>\n'; | |
686 } | |
687 kmlString += '\t</Folder>\n'; | |
688 kmlString += '</kml>\n'; | |
689 | |
690 return kmlString; | |
691 }, | |
692 | |
693 /** | |
694 * loads the csv-file | |
610 * | 695 * |
611 * @param {File} | 696 * @param {File} |
612 * csvFile | 697 * csvFile |
613 * @param {String} | 698 * @param {String} |
614 * term the term identifier for the resulting dataset | 699 * term the term identifier for the resulting dataset |
629 }, | 714 }, |
630 success: function(text){ | 715 success: function(text){ |
631 var status = document.getElementById("statusText"); | 716 var status = document.getElementById("statusText"); |
632 status.innerHTML = "Converting CSV to KML ..."; | 717 status.innerHTML = "Converting CSV to KML ..."; |
633 /* convert here from csv to kml */ | 718 /* convert here from csv to kml */ |
634 var kmlString = '<?xml version="1.0" standalone="yes"?>\n'; | 719 var kmlString = convertCsv(text); |
635 kmlString += '<kml xmlns="http://www.opengis.com/kml/ext/2.2">\n'; | 720 |
636 kmlString += '\t<Folder>\n'; | |
637 /* define expected csv table headers (first line) */ | |
638 var expectedHeaders = new Array("Name","Address","Description","Longitude","Latitude","TimeStamp","TimeSpan:begin","TimeSpan:end"); | |
639 /* convert csv string to array of arrays using ucsv library */ | |
640 var csvArray = CSV.csvToArray(text); | |
641 /* get real used table headers from csv file (first line) */ | |
642 var usedHeaders = csvArray[0]; | |
643 /* loop outer array, begin with second line */ | |
644 for (var i = 1; i < csvArray.length; i++) { | |
645 var innerArray = csvArray[i]; | |
646 kmlString += '\t\t<Placemark>\n'; | |
647 /* declare few variables */ | |
648 var timespanBegin = ""; | |
649 var timespanEnd = ""; | |
650 var longitude = ""; | |
651 var latitude = ""; | |
652 /* loop inner array */ | |
653 for (var j = 0; j < innerArray.length; j++) { | |
654 /* Name */ | |
655 if (usedHeaders[j] == expectedHeaders[0]) { | |
656 kmlString += '\t\t\t<name>' + innerArray[j] + '</name>\n'; | |
657 } | |
658 /* Address */ | |
659 if (usedHeaders[j] == expectedHeaders[1]) { | |
660 kmlString += '\t\t\t<address>' + innerArray[j] + '</address>\n'; | |
661 } | |
662 /* Description */ | |
663 if (usedHeaders[j] == expectedHeaders[2]) { | |
664 kmlString += '\t\t\t<description>' + innerArray[j] + '</description>\n'; | |
665 } | |
666 /* TimeStamp */ | |
667 if (usedHeaders[j] == expectedHeaders[5]) { | |
668 kmlString += '\t\t\t<TimeStamp>\n' + | |
669 '\t\t\t\t<when>' + innerArray[j] + '</when>\n' + | |
670 '\t\t\t</TimeStamp>\n'; | |
671 } | |
672 /* TimeSpan:begin */ | |
673 if (usedHeaders[j] == expectedHeaders[6]) { | |
674 timespanBegin = innerArray[j]; | |
675 } | |
676 /* TimeSpan:end */ | |
677 if (usedHeaders[j] == expectedHeaders[7]) { | |
678 timespanEnd = innerArray[j]; | |
679 } | |
680 /* Longitude */ | |
681 if (usedHeaders[j] == expectedHeaders[3]) { | |
682 longitude = innerArray[j]; | |
683 } | |
684 /* Latitude */ | |
685 if (usedHeaders[j] == expectedHeaders[4]) { | |
686 latitude = innerArray[j]; | |
687 } | |
688 } | |
689 /* set timespan:begin und timespan:end */ | |
690 kmlString += '\t\t\t<TimeSpan>\n' + | |
691 '\t\t\t\t<begin>' + timespanBegin + '</begin>\n' + | |
692 '\t\t\t\t<end>' + timespanEnd + '</end>\n' + | |
693 '\t\t\t</TimeSpan>\n'; | |
694 /* set longitude and latitude */ | |
695 kmlString += '\t\t\t<Point>\n' + | |
696 '\t\t\t\t<coordinates>' + | |
697 longitude +',' + latitude + | |
698 '</coordinates>\n' + | |
699 '\t\t\t</Point>\n'; | |
700 /* end Placemark */ | |
701 kmlString += '\t\t</Placemark>\n'; | |
702 } | |
703 kmlString += '\t</Folder>\n'; | |
704 kmlString += '</kml>\n'; | |
705 console.log("kmlstring="+kmlString); | |
706 /* convert string to xml */ | 721 /* convert string to xml */ |
707 var kmlXml = $.parseXML(kmlString); | 722 var kmlXml = $.parseXML(kmlString); |
708 console.log(kmlXml); | 723 console.log(kmlXml); |
709 /* pares the converted kml data */ | 724 /* pares the converted kml data */ |
710 var status = document.getElementById("statusText"); | 725 var status = document.getElementById("statusText"); |