/// <summary>
        /// Standard constructor of OsmData
        /// </summary>
        public OsmData() {    
            fileInfo = new FileInfo(OSMFILE);
            xmlSource = new XmlOsmStreamSource(fileInfo.OpenRead());

            nodes = new Dictionary<long, OsmSharp.Osm.Node>();
            buildings = new List<Building>();
            landuses = new List<Landuse>();

            /* Declare the colors of the brushes*/

            // Create Wallbrush
            WallTexture texture = new WallTexture(100, 1);
            Bitmap bitmap = texture.DrawTexture();

            using (MemoryStream memory = new MemoryStream())
            {
                bitmap.Save(memory, ImageFormat.Png);
                memory.Position = 0;
                bitmapImage = new BitmapImage();
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = memory;
                bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                bitmapImage.EndInit();
            }

            Rect rect = new Rect(0, 0, bitmapImage.PixelWidth, bitmapImage.PixelHeight);
            WALLBRUSH = new ImageBrush(bitmapImage);
            WALLBRUSH.Viewport = rect;
            WALLBRUSH.ViewportUnits = BrushMappingMode.Absolute;
            WALLBRUSH.Stretch = Stretch.None;
            WALLBRUSH.AlignmentX = AlignmentX.Left;
            WALLBRUSH.AlignmentY = AlignmentY.Top;
            WALLBRUSH.TileMode = TileMode.Tile;


            // Create GrassBrush
            DiamondSquare textureGrass = new DiamondSquare(1, 256, 256);
            Bitmap bitmapGrass = textureGrass.getPoints("green");

            using (MemoryStream memory = new MemoryStream())
            {
                bitmapGrass.Save(memory, ImageFormat.Png);
                memory.Position = 0;
                bitmapImage = new BitmapImage();
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = memory;
                bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                bitmapImage.EndInit();
            }

            Rect rectGrass = new Rect(0, 0, bitmapImage.PixelWidth, bitmapImage.PixelHeight);
            GRASSBRUSH = new ImageBrush(bitmapImage);
            GRASSBRUSH.Viewport = rectGrass;
            GRASSBRUSH.ViewportUnits = BrushMappingMode.Absolute;
            GRASSBRUSH.Stretch = Stretch.None;
            GRASSBRUSH.AlignmentX = AlignmentX.Left;
            GRASSBRUSH.AlignmentY = AlignmentY.Top;
            GRASSBRUSH.TileMode = TileMode.Tile;

            // Define rest of brushes
            SURFACEBRUSH = new SolidColorBrush(Colors.Black);
            LANDUSECOMMERCIALBRUSH = new SolidColorBrush(Colors.LightPink);
            LANDUSECOSTRUCIONBRUSH = new SolidColorBrush(Colors.DarkOliveGreen);
            LANDUSEFARMLANDBRUSH = new SolidColorBrush(Colors.LightYellow);
            LANDUSEFORESTBRUSH = new SolidColorBrush(Colors.LightGreen);
            LANDUSEGARAGESBRUSH = new SolidColorBrush(Colors.Gray);
            LANDUSEGRASSBRUSH = new SolidColorBrush(Colors.LawnGreen);
            LANDUSEINDUSTRIALBRUSH = new SolidColorBrush(Colors.MediumPurple);
            LANDUSERAILWAYBRUSH = new SolidColorBrush(Colors.Black);
            LANDUSERESIDENTIALBRUSH = new SolidColorBrush(Colors.WhiteSmoke);
            LANDUSEDEFAULTBRUSH = new SolidColorBrush(Colors.Orange);

            getBounds();                // declares the object map
            getNodes();                 // fills the dictonary nodes
            getBuildingsAndLanduses();  // fills the lists buildings and landuses
        }
        /// <summary>
        /// Returns the brush for the background
        /// </summary>
        /// <returns>ImageBrush for the background</returns>
        public ImageBrush getBackgroundBrush()
        {
            DiamondSquare background = new DiamondSquare(0.7, 256, 256);
            Bitmap bitmap = background.getPoints("blue");

            ImageBrush brush = new ImageBrush();
            BitmapImage bitmapImage = new BitmapImage();

            using (MemoryStream memory = new MemoryStream())
            {
                bitmap.Save(memory, ImageFormat.Png);
                memory.Position = 0;
                bitmapImage = new BitmapImage();
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = memory;
                bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                bitmapImage.EndInit();
            }

            brush.ImageSource = bitmapImage;

            return brush;
        }