public static LvcMap Get(string file)
        {
            //file = Path.Combine(Directory.GetCurrentDirectory(), file);

            if (!File.Exists(file))
            {
            #if DEBUG
                //Console.WriteLine("File not found!");
            #endif
            #pragma warning disable 162
                // ReSharper disable once HeuristicUnreachableCode
                return null;
            #pragma warning restore 162
            }

            var svgMap = new LvcMap
            {
                DesiredHeight = 600,
                DesiredWidth = 800,
                Data = new List<MapData>()
            };

            using (var reader = XmlReader.Create(file, new XmlReaderSettings {IgnoreComments = true}))
            {
                while (reader.Read())
                {
                    if (reader.Name == "Height") svgMap.DesiredHeight = double.Parse(reader.ReadInnerXml());
                    if (reader.Name == "Width") svgMap.DesiredWidth = double.Parse(reader.ReadInnerXml());
                    if (reader.Name == "MapShape")
                    {
                        var p = new MapData
                        {
                            LvcMap = svgMap
                        };
                        reader.Read();
                        while (reader.NodeType != XmlNodeType.EndElement)
                        {
                            if (reader.NodeType != XmlNodeType.Element) reader.Read();
                            if (reader.Name == "Id") p.Id = reader.ReadInnerXml();
                            if (reader.Name == "Name") p.Name = reader.ReadInnerXml();
                            if (reader.Name == "Path") p.Data = reader.ReadInnerXml();
                        }
                        svgMap.Data.Add(p);
                    }
                }
            }
            return svgMap;
        }
Exemple #2
0
        public static LvcMap Get(string file)
        {
            //file = Path.Combine(Directory.GetCurrentDirectory(), file);

            if (!File.Exists(file))
            {
#if DEBUG
                Console.WriteLine("File not found!");
#endif
#pragma warning disable 162
                // ReSharper disable once HeuristicUnreachableCode
                return(null);

#pragma warning restore 162
            }

            var svgMap = new LvcMap
            {
                DesiredHeight = 600,
                DesiredWidth  = 800,
                Data          = new List <MapData>()
            };

            using (var reader = XmlReader.Create(file, new XmlReaderSettings {
                IgnoreComments = true
            }))
            {
                while (reader.Read())
                {
                    if (reader.Name == "Height")
                    {
                        svgMap.DesiredHeight = double.Parse(reader.ReadInnerXml());
                    }
                    if (reader.Name == "Width")
                    {
                        svgMap.DesiredWidth = double.Parse(reader.ReadInnerXml());
                    }
                    if (reader.Name == "MapShape")
                    {
                        var p = new MapData
                        {
                            LvcMap = svgMap
                        };
                        reader.Read();
                        while (reader.NodeType != XmlNodeType.EndElement)
                        {
                            if (reader.NodeType != XmlNodeType.Element)
                            {
                                reader.Read();
                            }
                            if (reader.Name == "Id")
                            {
                                p.Id = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Name")
                            {
                                p.Name = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Path")
                            {
                                p.Data = reader.ReadInnerXml();
                            }
                        }
                        svgMap.Data.Add(p);
                    }
                }
            }
            return(svgMap);
        }
        public static LvcMap Get(string file)
        {
            //file = Path.Combine(Directory.GetCurrentDirectory(), file);

            if (!File.Exists(file))
            {
                throw new FileNotFoundException(String.Format("This file {0} was not found.", file));
            }

            var svgMap = new LvcMap
            {
                DesiredHeight = 600,
                DesiredWidth  = 800,
                Data          = new List <MapData>()
            };

            using (var reader = XmlReader.Create(file, new XmlReaderSettings {
                IgnoreComments = true
            }))
            {
                while (reader.Read())
                {
                    if (reader.Name == "Height")
                    {
                        svgMap.DesiredHeight = double.Parse(reader.ReadInnerXml());
                    }
                    if (reader.Name == "Width")
                    {
                        svgMap.DesiredWidth = double.Parse(reader.ReadInnerXml());
                    }
                    if (reader.Name == "MapShape")
                    {
                        var p = new MapData
                        {
                            LvcMap = svgMap
                        };
                        reader.Read();
                        while (reader.NodeType != XmlNodeType.EndElement)
                        {
                            if (reader.NodeType != XmlNodeType.Element)
                            {
                                reader.Read();
                            }
                            if (reader.Name == "Id")
                            {
                                p.Id = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Name")
                            {
                                p.Name = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Path")
                            {
                                p.Data = reader.ReadInnerXml();
                            }
                        }
                        svgMap.Data.Add(p);
                    }
                }
            }
            return(svgMap);
        }
Exemple #4
0
        public static LvcMap Get(string file)
        {
            var isFromResource = false;

            var svgMap = new LvcMap
            {
                DesiredHeight = 600,
                DesiredWidth  = 800,
                Data          = new List <MapData>()
            };

            if (File.Exists(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)))
            {
                file = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file);
            }
            else
            {
                isFromResource = true;
                file           = System.Diagnostics.Process.GetCurrentProcess().ProcessName.Replace(@"\", "")
                                 + file.Replace("/", ".").Replace(@"\", ".");
            }



            using (var stream = isFromResource
                                  ? Assembly.GetExecutingAssembly().GetManifestResourceStream(file)
                                  : File.Open(file, FileMode.Open))
            {
                if (stream == null)
                {
                    return(null);
                }

                using (var reader = XmlReader.Create(stream))
                {
                    while (reader.Read())
                    {
                        if (reader.Name == "Height")
                        {
                            svgMap.DesiredHeight = double.Parse(reader.ReadInnerXml());
                        }
                        if (reader.Name == "Width")
                        {
                            svgMap.DesiredWidth = double.Parse(reader.ReadInnerXml());
                        }

                        if (reader.Name != "MapShape")
                        {
                            continue;
                        }

                        var p = new MapData
                        {
                            LvcMap = svgMap
                        };
                        reader.Read();
                        while (reader.NodeType != XmlNodeType.EndElement)
                        {
                            if (reader.NodeType != XmlNodeType.Element)
                            {
                                reader.Read();
                            }
                            if (reader.Name == "Id")
                            {
                                p.Id = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Name")
                            {
                                p.Name = reader.ReadInnerXml();
                            }
                            if (reader.Name == "Path")
                            {
                                p.Data = reader.ReadInnerXml();
                            }
                        }
                        svgMap.Data.Add(p);
                    }
                }
            }



            return(svgMap);
        }
Exemple #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CustomeGeoMap"/> class.
        /// </summary>
        public CustomeGeoMap()
        {
            Canvas = new Canvas();
            Map    = new Canvas();
            Canvas.ClipToBounds = true;
            Map.ClipToBounds    = true;
            Canvas.Children.Add(Map);
            Content = Canvas;

            Canvas.SetBinding(WidthProperty,
                              new Binding {
                Path = new PropertyPath(ActualWidthProperty), Source = this
            });
            Canvas.SetBinding(HeightProperty,
                              new Binding {
                Path = new PropertyPath(ActualHeightProperty), Source = this
            });

            Lands = new Dictionary <string, MapData>();

            SetCurrentValue(DefaultLandFillProperty, new SolidColorBrush(Color.FromArgb(200, 255, 255, 255)));
            SetCurrentValue(LandStrokeProperty, new SolidColorBrush(Color.FromArgb(30, 55, 55, 55)));
            SetCurrentValue(LandStrokeThicknessProperty, 1.3d);
            SetCurrentValue(AnimationsSpeedProperty, TimeSpan.FromMilliseconds(500));
            SetCurrentValue(BackgroundProperty, new SolidColorBrush(Color.FromArgb(150, 96, 125, 138)));
            SetCurrentValue(GradientStopCollectionProperty, new GradientStopCollection
            {
                new GradientStop(Color.FromArgb(100, 2, 119, 188), 0d),
                new GradientStop(Color.FromRgb(2, 119, 188), 1d),
            });
            SetCurrentValue(HeatMapProperty, new Dictionary <string, double>());


            SetCurrentValue(GeoMapTooltipProperty, new DefaultGeoMapTooltip {
                Visibility = Visibility.Hidden
            });
            Canvas.Children.Add(GeoMapTooltip);

            SizeChanged += (sender, e) =>
            {
                Draw();
            };

            MouseWheel += (sender, e) =>
            {
                if (!EnableZoomingAndPanning)
                {
                    return;
                }

                e.Handled = true;
                var rt = Map.RenderTransform as ScaleTransform;
                var p  = rt == null ? 1 : rt.ScaleX;
                p += e.Delta > 0 ? .05 : -.05;
                p  = p < 1 ? 1 : p;
                var o = e.GetPosition(this);
                if (e.Delta > 0)
                {
                    Map.RenderTransformOrigin = new Point(o.X / ActualWidth, o.Y / ActualHeight);
                }
                Map.RenderTransform = new ScaleTransform(p, p);
            };

            MouseDown += (sender, e) =>
            {
                if (!EnableZoomingAndPanning)
                {
                    return;
                }

                DragOrigin = e.GetPosition(this);
            };

            MouseUp += (sender, e) =>
            {
                if (!EnableZoomingAndPanning)
                {
                    return;
                }

                var end   = e.GetPosition(this);
                var delta = new Point(DragOrigin.X - end.X, DragOrigin.Y - end.Y);

                var l = Canvas.GetLeft(Map) - delta.X;
                var t = Canvas.GetTop(Map) - delta.Y;

                if (DisableAnimations)
                {
                    Canvas.SetLeft(Map, l);
                    Canvas.SetTop(Map, t);
                }
                else
                {
                    Map.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(l, AnimationsSpeed));
                    Map.BeginAnimation(Canvas.TopProperty, new DoubleAnimation(t, AnimationsSpeed));
                }
            };

            Loaded += (sender, e) =>
            {
                lvcMap = MapResolver.Get(Source);
                Draw();
            };
        }