首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SharpMap对象中正确初始化缩放级别?

如何在SharpMap对象中正确初始化缩放级别?
EN

Stack Overflow用户
提问于 2016-06-17 03:38:57
回答 1查看 941关注 0票数 0

我正在Windows Forms C#应用程序中使用来自SharpMap的MapBox对象,但我似乎找不到如何使缩放级别工作。MapBox对象位于TabControl对象中。

这个类是在我的应用程序中的主InitializeComponent()调用之后调用的。

代码语言:javascript
复制
public void InitializeMap(SharpMap.Forms.MapBox mapBox)
        {
            mapBox.Map.BackgroundLayer.Add(new SharpMap.Layers.TileAsyncLayer(
                new BruTile.Web.OsmTileSource(), "OSM"));

            mapBox.Map.Zoom = 10; //
            mapBox.Refresh();
        }

无论为mapBox.Map.Zoom属性写入什么值,它始终是相同的高缩放级别。

另一方面,如果我使用mapBox.Map.ZoomToExtents()调用,它可以正确地缩放到OSM层的范围。

我想我做错了一件简单的事情,但我似乎找不到问题所在。

EN

回答 1

Stack Overflow用户

发布于 2017-03-30 19:38:07

mapBox.Map.Zoom始终与mapBox.Map.Envelope.Width相同。

尝试使用mapBox.Map.ZoomToBox(new GeoAPI.Geometries.Envelope(-5.0, 5.0, -5.0, 5.0)),而不是像这样设置缩放。地图将被定位和缩放,以便整个信封都在地图中。

在我的例子中,封套的宽度是10,但是如果你的地图的宽度大于它的高度,mapBox.Map.Zoom将会大于这个值,因为(正如我上面所说的)它的值与地图可见部分的宽度相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37868037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档