2016-06-16 8 views
0

SharpMapのMapBoxオブジェクトをWindows Forms C#アプリケーションで使用しているため、ズームレベルを動作させる方法がわかりません。 MapBoxオブジェクトはTabControlオブジェクトにあります。SharpMapオブジェクトのズームレベルを正しく初期化するにはどうすればよいですか?

このクラスは、アプリケーションのメインのInitializeComponent()呼び出しの後に呼び出されます。

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レイヤのエクステントに正しく拡大されます。

私は単純なことを間違っていると思いますが、問題は何かを見つけることができません。

答えて

0

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がそれよりも大きくなります(上記のように)その値は可視の幅と同じです地図の一部。

関連する問題