## 3 Materials and Methods
### System Development
#### Open Data and Services  
The system utilizes geospatial data and services at all distinct phases of its development and operation to meet the requirements of interoperability [48], reusability [51] and invocability [52] of geospatial data and services. These requirements are currently set by the relevant European Union legal framework and are constantly updated with new regulations and decisions for the implementation of the INSPIRE [51] Directive, as prerequisites for the successful completion of a project and for the successful dissemination and diffusion of its outputs and results, when these possess spatial identity or may be spatially represented.  
Data and services are interrelated concepts as data can be made available through specialized web services. As regards the geospatial data and services of the system, the following open interoperability standards are adopted:  
* GML [53] (Geography MarkUp Language)--the XML-based standard that provides the ability to describe and transfer data and application schemas.
* WMS [54] (Web Map Service) and WMTS (Web Map Tile Service) [55] for serving image maps and the texture of any model or DTM/DSM that makes up a custom virtual geospatial world.
* WFS [56] (Web Feature Service) to serve spatial features and TSML [57] (TimeseriesML) to serve locations and motion paths of 3D models.
* I3S [58] (Indexed 3d Scene Layers Standard) to serve arbitrarily large amounts of heterogeneously distributed 3D geographic data.
* ARML [59] (Augmented Reality Markup Language) to describe virtual objects in an augmented reality (AR) scene with their appearances and their anchors.  
Data import is a major functionality because it satisfies the need of creating custom virtual geospatial worlds with a variety of resources (3D models, vector and raster data, spreadsheet files, etc.).  
Data import from a local source is achieved by utilizing the FileReader object, which lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer [60]. This approach overpasses the obstacle of Three.js that only supports loading models via XMLHttpRequest [61] objects which are used for the applications to interact with servers. Then, the prototypes of Three.js functions used to load models (GLTFLoader and FBXLoader), are extended to support this new way of input data.  
Data import from an online source of data is supported out of the box, taking advantage of the representational state transfer (REST) software architectural style and web services. Online data could form a chained geospatial web service and be provided by any of the OGC Web Services standard. In specific, WMS and WMTS can be used to serve the texture of any model or DTM/DSM that makes up the custom world, and WFS and TSML can be used to serve the location of a model or the path of its movement. Alternatively, a whole static scene, excluding movements and animations, can be served through the I3S standard. This may be consequently combined with a standard that supportsspatiotemporal data (e.g., timeseries) to satisfy serving of custom virtual geospatial worlds containing also motion and animation effects of spatial objects.  
All the work can be exported as imported. This means that the export can be individual XML files structured as one of the OGC standards, a JSON file, a scene layer package (SLPK) file or even a SLPK zip file including all resources with type Zip64 (I3S).