Exemple #1
0
        protected override void OnMouseWheel(MouseEventArgs e)
        {
            var   res = _mapTransform.Resolution;
            float factor;

            if (e.Delta < 0)
            {
                factor = 1.2f;
            }
            else if (e.Delta > 0)
            {
                factor = 1 / 1.2f;
            }
            else
            {
                return;
            }

            var center = new PointF(Width * 0.5f, Height * 0.5f);
            var point  = new PointF(e.X, e.Y);

            var dx = (center.X - point.X) * factor;
            var dy = (center.Y - point.Y) * factor;

            var newCenter = _mapTransform.MapToWorld(point.X + dx, point.Y + dy);

            var transform = new MapTransform(newCenter, res * factor, Width, Height);

            _mapTransform = transform;
            RenderToBuffer();

            base.OnMouseWheel(e);
        }
Exemple #2
0
        protected override void OnMouseWheel(MouseEventArgs e)
        {
            if (_mapTransform == null)
                return;

            var res = _mapTransform.Resolution;
            float factor;
            if (e.Delta < 0)
                factor = 1.2f;
            else if (e.Delta > 0)
                factor = 1 / 1.2f;
            else
                return;

            var center = new PointF(picMap.Width * 0.5f, picMap.Height * 0.5f);
            var point = new PointF(e.X, e.Y);

            var dx = (center.X - point.X) * factor;
            var dy = (center.Y - point.Y) * factor;

            var newCenter = _mapTransform.MapToWorld(point.X + dx, point.Y + dy);

            var transform = new MapTransform(newCenter, res * factor, picMap.Width, picMap.Height);
            _mapTransform = transform;
            RenderToBuffer();

            base.OnMouseWheel(e);
        }
Exemple #3
0
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            if (_mapTransform == null) return;
            if (picMap.Width == 0 || picMap.Height == 0) return;

            _buffer = new Bitmap(picMap.Width, picMap.Height);
            _mapTransform = new MapTransform(_mapTransform.Center, _mapTransform.Resolution, picMap.Width, picMap.Height);
            RenderToBuffer();
        }
Exemple #4
0
 protected override void OnMouseClick(MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         var pt = _mapTransform.MapToWorld(e.X, e.Y);
         _mapTransform = new MapTransform(pt, _mapTransform.Resolution, Width, Height);
         RenderToBuffer();
     }
     base.OnMouseClick(e);
 }
Exemple #5
0
        private void getSampleFileFromInternetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var path    = Path.Combine(Path.GetTempPath(), "mapbox.haiti-terrain.mbtiles");
            var req     = WebRequest.Create("http://a.tiles.mapbox.com/mapbox/download/haiti-terrain.mbtiles");
            var success = true;

            try
            {
                Enabled = false;

                var tmpFile = Path.GetTempFileName();
                using (var response = req.GetResponse())
                {
                    using (var streamWriter = new BinaryWriter(File.OpenWrite(tmpFile)))
                    {
                        using (var stream = response.GetResponseStream())
                        {
                            var buffer = new byte[4 * 8192];
                            while (true)
                            {
                                var read = stream.Read(buffer, 0, buffer.Length);
                                if (read <= 0)
                                {
                                    break;
                                }
                                streamWriter.Write(buffer, 0, read);
                            }
                        }
                    }
                }
                _source = null;
                File.Copy(tmpFile, path, true);
                File.Delete(tmpFile);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                success = false;
                //throw;
            }
            finally
            {
                if (success)
                {
                    _source = new MbTilesTileSource(path);
                    var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                    _mapTransform = new MapTransform(
                        new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                        scale, picMap.Width, picMap.Height);

                    RenderToBuffer();
                }
                Enabled = true;
            }
        }
        private void picMap_MouseClick(object sender, MouseEventArgs e)
        {
            if (_mapTransform == null)
            {
                return;
            }

            if (e.Button == MouseButtons.Left)
            {
                var pt = _mapTransform.MapToWorld(e.X, e.Y);
                _mapTransform = new MapTransform(pt, _mapTransform.Resolution, picMap.Width, picMap.Height);
                RenderToBuffer();
            }
        }
Exemple #7
0
 protected override void OnResize(System.EventArgs e)
 {
     _buffer = new Bitmap(ClientSize.Width, ClientSize.Height);
     if (_mapTransform == null)
     {
         _mapTransform = new MapTransform(new PointF(0, 0), 50000f, ClientSize.Width, ClientSize.Height);
     }
     else
     {
         _mapTransform = new MapTransform(_mapTransform.Center, _mapTransform.Resolution, ClientSize.Width, ClientSize.Height);
     }
     RenderToBuffer();
     base.OnResize(e);
 }
Exemple #8
0
        protected override void OnLoad(EventArgs e)
        {
            /* http://a.tiles.mapbox.com/mapbox/download/haiti-terrain-grey.mbtiles */
            var path = Path.Combine(Path.GetTempPath(), "mapbox.haiti-terrain-grey.mbtiles");
            if (File.Exists(path))
            {
                _source = new MbTilesTileSource(path);
                var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                _mapTransform = new MapTransform(
                    new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                    scale, picMap.Width, picMap.Height);

                RenderToBuffer();
            }
            base.OnLoad(e);
        }
Exemple #9
0
        protected override void OnResize(EventArgs e)
        {
            base.OnResize(e);
            if (_mapTransform == null)
            {
                return;
            }
            if (picMap.Width == 0 || picMap.Height == 0)
            {
                return;
            }

            _buffer       = new Bitmap(picMap.Width, picMap.Height);
            _mapTransform = new MapTransform(_mapTransform.Center, _mapTransform.Resolution, picMap.Width, picMap.Height);
            RenderToBuffer();
        }
Exemple #10
0
        protected override void OnLoad(EventArgs e)
        {
            /* http://a.tiles.mapbox.com/mapbox/download/haiti-terrain-grey.mbtiles */
            var path = Path.Combine(Path.GetTempPath(), "mapbox.haiti-terrain-grey.mbtiles");

            if (File.Exists(path))
            {
                _source = new MbTilesTileSource(path);
                var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                _mapTransform = new MapTransform(
                    new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                    scale, picMap.Width, picMap.Height);

                RenderToBuffer();
            }
            base.OnLoad(e);
        }
Exemple #11
0
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (var ofn = new OpenFileDialog())
            {
                ofn.Filter          = @"MbTiles file|*.mbtiles";
                ofn.FilterIndex     = 0;
                ofn.Multiselect     = false;
                ofn.CheckFileExists = true;
                if (ofn.ShowDialog() == DialogResult.OK)
                {
                    _source = new MbTilesTileSource(ofn.FileName);
                    var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                    _mapTransform = new MapTransform(
                        new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                        scale, picMap.Width, picMap.Height);

                    RenderToBuffer();
                }
            }
        }
Exemple #12
0
 protected override void OnMouseClick(MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         var pt = _mapTransform.MapToWorld(e.X, e.Y);
         _mapTransform = new MapTransform(pt, _mapTransform.Resolution, Width, Height);
         RenderToBuffer();
     }
     base.OnMouseClick(e);
 }
Exemple #13
0
 protected override void OnResize(System.EventArgs e)
 {
     _buffer = new Bitmap(ClientSize.Width, ClientSize.Height);
     if (_mapTransform == null)
         _mapTransform = new MapTransform(new PointF(0, 0), 50000f, ClientSize.Width,ClientSize.Height);
     else
         _mapTransform = new MapTransform(_mapTransform.Center, _mapTransform.Resolution, ClientSize.Width, ClientSize.Height);
     RenderToBuffer();
     base.OnResize(e);
 }
Exemple #14
0
        private void getSampleFileFromInternetToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var path = Path.Combine(Path.GetTempPath(), "mapbox.haiti-terrain.mbtiles");
            var req = WebRequest.Create("http://a.tiles.mapbox.com/mapbox/download/haiti-terrain.mbtiles");
            var success = true;
            try
            {
                Enabled = false;

                var tmpFile = Path.GetTempFileName();
                using (var response = req.GetResponse())
                {
                    using (var streamWriter = new BinaryWriter(File.OpenWrite(tmpFile)))
                    {
                        using (var stream = response.GetResponseStream())
                        {
                            var buffer = new byte[4 * 8192];
                            while (true)
                            {
                                var read = stream.Read(buffer, 0, buffer.Length);
                                if (read <= 0) break;
                                streamWriter.Write(buffer, 0, read);
                            }
                        }
                    }
                }
                _source = null;
                File.Copy(tmpFile, path, true);
                File.Delete(tmpFile);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                success = false;
                //throw;
            }
            finally
            {
                if (success)
                {
                    _source = new MbTilesTileSource(path);
                    var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                    _mapTransform = new MapTransform(
                        new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                        scale, picMap.Width, picMap.Height);

                    RenderToBuffer();
                }
                Enabled = true;
            }
        }
Exemple #15
0
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (var ofn = new OpenFileDialog())
            {
                ofn.Filter = @"MbTiles file|*.mbtiles";
                ofn.FilterIndex = 0;
                ofn.Multiselect = false;
                ofn.CheckFileExists = true;
                if (ofn.ShowDialog() == DialogResult.OK)
                {
                    _source = new MbTilesTileSource(ofn.FileName);
                    var scale = (float)(1.1 * Math.Max(_source.Schema.Extent.Width / picMap.Width, _source.Schema.Extent.Height / picMap.Height));
                    _mapTransform = new MapTransform(
                        new PointF((float)_source.Schema.Extent.CenterX, (float)_source.Schema.Extent.CenterY),
                        scale, picMap.Width, picMap.Height);

                    RenderToBuffer();
                }
            }
        }
 private void picMap_MouseClick(object sender, MouseEventArgs e)
 {
     if (_mapTransform == null) return;
     
     if (e.Button == MouseButtons.Left)
     {
         var pt = _mapTransform.MapToWorld(e.X, e.Y);
         _mapTransform = new MapTransform(pt, _mapTransform.Resolution, picMap.Width, picMap.Height);
         RenderToBuffer();
     }
 }