Created during a computer communication course during the second year at Ariel University
in the Department of Computer Science, 2018

This project can convert CSV files into Objects such as project,layer, and elements.
in Addition we can represent any point in 3D space and perform vector operations on it and more.
The program includes the next packages:


The Algorithms package is include MultiCSV class, that responsible to convert Multi CSV files
into a KML file
The Coords package is include the next Classes:

MyCoords: Class that responsible to coords calculation, for example we can make
add, calculate distance3d, distance2d, make vector from two 3DPoints, calculate Azimuth,Elevation and Dist
between two 3D Points, and check if a input 3D Point is a Valid GPS Point.
coords_converter: a interface that MyCoords class implements
The File_format package is include the next Classes:

CSV2KML: get .CSV file as input, and transform it into a .KML file
CSVToMatrix: get .CSV file as input, and transform it into a Matrix, we can take every cell in .CSV file in O(1)
Object2KML: get Object such that Layer,Project or Element and convert it into a KML file
Object2KML Constructor gets Object that represent Layer,Element or Project and get String, that String is that path were to put the kml file.
The Geom package is include the next Classes:

Geom_element: an interface that represent a Geom element
Point3D: a 3D Point that implements Geom_element
The GIS package is include the next Classes:


Meta_data: an interface that represent data about point
Data: class that implements Meta_data, have information about a Point
GIS_element: an interface that represent a Element, each Geom element have Geom element and Meta_data
Element: class that implements GIS_element, have Geom element and Data, each Point is an element
GIS_layer: an interface that represent a set of GIS_element
Layer: class that represent a Set of elements, for example one .CSV file
GIS_Project: an interface that represent a set of GIS_layer
Project: This Class represent Project that is a Set of Layers
MetaElement: This Class represent Data that implements Meta_data, each Data is a Line information,each Data have RSSI,FirstSeen,Channel,SSID,Mac,Authmode.
MeatLayer: This Class Represent Layer Data such as Time,Path
MetaProject: This Class Represent Project Data such as Time,Path
For example, a Layer in KML file:

GIS_project: an interface that represent a set of GIS_layer
Project: class that represent a Set of Layers, for example Folder of .CSV files
For example, a Project in KML file:

Layer Constructor get a String that represent path to .csv File and make a Elements from it and add them into his Set.
Project Constructor get a String that represent path to Folder and make a Layers from it and add them into his Set.
The Testing package is include the next Classes:

Csv2kml Junit Test: Test CSV2kml class
MultiCSV Junit Test: Test MultiCSV class
MyCoords Junit Test: Test MyCoords class
GISTest Junit Test: Test Project and Layer under GIS package