Example: Create a Data Source within an Existing Data Source

When a data source is writable, for example, if the data source is a Manifold .map file, we can work within that data source as if it were at the top level of our project.   For example, we can create a new data source that is nested within the existing data source.  




We begin with a new project we call World.   We choose File - Create - New Data Source.




In the New Data Source dialog we choose a Name of Europe and we browse over to the Europe.map project that we saved in the example given in the File - Create - New Data Source topic.   We press Create Data Source.




A new data source called Europe appears in our project.  If we expand it we see that it is, indeed, the Europe project we created in our example within the File - Create - New Data Source topic, with a France data source linked in within the Schengen Zone Countries folder.   We right-click on the Schengen Zone Countries folder and then we choose New Data Source.




The New Data Source dialog now opens up with Europe as the data source destination at the top, a manifold data source, because we are creating the new data source within the Europe data source that already has been created within the  project.  


We provide a Name of Germany and then we use the [...] browse button to load the Germany.map project file into the Source box.    We will use a previously created .map project called Germany as the data source.  We press Create Data Source.




A new data source called Germany appears within our project, nested within the data source called Europe.   Note that the yellow database cylinder icon for Europe appears with an asterisk * in the icon, which indicates the project has not yet been saved and thus the .map project for the Europe data source in turn has not been updated.




When we save our World project any of the data sources in it that have been changed will also be saved.   In the screenshot above we can see that the yellow database cylinder icon for the Europe data source no longer has an asterisk in the icon.  The Europe.map file has now been updated to include the new data source we have created within it.   We have drilled down into the France data source and have opened the France Hydro Drawing to show it really is the same France project within that data source that was used in the earlier example.


This is a pretty cool deal:   We have reached out through a linked data source to create a new, nested data source within that data source.




Suppose we now close the World project and we use File - Open to open the Europe.map project.  We can see that the Europe.map project now has not just one but two data sources within the Schengen Zone Countries folder: the new Germany data source we added in the steps above now exists within that folder along with the France data source that we created within that folder in the earlier example.


While we have the Europe project open, let's create one more data source.   Without anything highlighted in the project pane, we will choose File - Create - New Data Source.




We will use a name of England and browse over to an England.map file we have previously created.    Because we did not have the focus in our project pane within any folders or onto either of the data sources (none of them were highlighted) the new data source will be created in the top level of the project and not within any folders and not nested within any data sources in the project.   We press Create Data Source.




This creates a new data source called England within our project, created not within any folder but just in the root of the project.    Great Britain is not part of the Schengen area so logically England should not be grouped within the Schengen Zone Countries folder.   Some readers might question whether England logically should be within a Europe project at all but that is a different question for another day.




Suppose we save the Europe project and then close it, and then we use File - Recent Projects to open up the World.map project we had previously saved.    We can see that within the Europe data source in that project a new data source, England, has been created within the Europe project.


In the screenshot above we are looking at Manifold .map projects that are nested three levels deep:  there is the World.map project which contains a nested Europe.map project.   That, in turn, contains nested data sources created from  England.map, France.map and Germany.map projects.    We could expand any of those data sources and work with the components they contain or create new components or data sources in them just as if we were working at the root of the World.map project.




For example, we could expand the France data source nested within the Europe data source and then open the France Hydro Drawing to see the hydrology (waterways) of France within that project.


What is truly superb about use of such nested data sources is that there is zero performance loss to using nested Manifold .map projects as nested data sources.   We could open up a 10 GB drawing within a data source nested ten levels down of .map project data sources within .map project data sources and it would still open just as fast as if that drawing were at the root of our current .map project.  


The preservation of performance with zero loss is the key to using nested data sources to build conveniently organized libraries of data.    We could have hundreds of projects organized as data sources within various other projects.   


See Also

File - Create - New Data Source


Web Servers and Image Servers


Example: Spectacular Images and Data from Web Servers - A must see topic providing a gallery of views illustrating how Manifold can use web servers such as imageservers and other free resources to provide a seemingly endless selection of spectacular background maps, satellite images and GIS data with nearly zero effort.


Example: An Imageserver Tutorial - An extensive tutorial showing step by step how to add new data sources that are imageservers, how to show them as layers in a map, how to create a new drawing that matches the projection of the map and how to trace over what is seen in an imageserver layer to create an area object in the drawing.


Example: Create a New Data Source from a Manifold Image Server - Manifold image server modules are snippets of code which use the Manifold Image Server Interface (ISI) to automatically fetch image tiles from popular image servers like Virtual Earth, Wikimapia, Yahoo!, Google Maps, Yandex and many others. Image servers can provide street maps, overhead satellite imagery, combinations of streets and satellite imagery and other data as well.  Using Manifold Image Servers is one of the most popular Manifold features.


Example: Create a New Data Source from a MAP File - Create a new data source from an existing Manifold .map project file.   This is the classic way to nest projects, one calling another, to create libraries of data and projects.   Access to nested projects has effectively zero performance loss and the links within projects take up effectively zero space so we can create huge constellations of data at our fingertips.


Example: Create and Use New Data Source using an MDB Database - This example Illustrates the step-by-step creation of a new data source using an .mdb file database, followed by use of SQL.  Although now deprecated in favor of the more current Access Database Engine formats, .mdb files are ubiquitous in the Microsoft world, one of the more popular file formats in which file databases are encountered.  


Example: Modify GPKG Geometry with SQL then Add Drawing - This topic provides a "Hello, World" example that shows a simple, but typical, task involving spatial data.  We will take a country-sized data set in GeoPackage (GPKG) format and change all areas in the data to the boundary lines for those areas and then save those boundary lines as a new table.  We add a spatial index to the table and create a new drawing to visualize the new table.


Example: Trace an Area in a Map over an Image Background - In a map with a drawing layer above an image layer (served dynamically by an imageserver), create an area object in the drawing by tracing over the outlines of something seen in the image layer below


Example: Style Applied to an Image Server Image - Because the Edit - Style dialog simply changes the way an image is displayed and not the data, it can operate on read-only data served by various web servers such as WMS REST servers.    In this example we look at every detail of creating a data source using a WMS REST  server and then manipulating the appearance of the display with Style.  We will connect to a WMS server that provides LiDAR data in various forms, including as terrain elevation.