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");