2012-01-27 10 views
1

MapLayerに大きな楕円を表示する際に問題があります。楕円は切り取られます。Silverlight 4、Bing Maps、楕円サイズ

XAMLでは、レイヤーと楕円のあるマップを追加するだけです。コードの背後にある私は、マップ内の楕円を探します。北に地図をパンすると問題が発生します。

<UserControl x:Class="PruebaEllipse.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <m:Map x:Name="Mapa" CredentialsProvider="AlT1xaWmg1CctI7..." Mode="Road" Grid.Column="0" Grid.Row="1" ZoomLevel="10" Center="-33,-54" > 
      <m:MapLayer x:Name="NewPolygonLayer"> 
      </m:MapLayer> 
      <m:MapLayer x:Name="Layer1" Loaded="Layer1_Loaded" > 
       <m:MapLayer.Children> 
        <Ellipse Height="1500" HorizontalAlignment="Left" Name="ellipse1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="900" Fill="#FF895D5D" /> 
       </m:MapLayer.Children> 
      </m:MapLayer> 
     </m:Map> 
    </Grid> 
</UserControl> 

これは背後にあるコードである:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 

using Microsoft.Maps.MapControl; 

namespace PruebaEllipse 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 

     private void Layer1_Loaded(object sender, RoutedEventArgs e) 
     { 
      Location trkLoc2 = new Location(-32.5, -54.0); 
      MapLayer.SetPosition(ellipse1, trkLoc2); 
     } 
    } 
} 
+0

あなたはそれを理解しましたか? :) –

答えて

0

このシルバーの制限です。ビューポートウィンドウより大きなサイズのコントロールを作成すると、クリップされます。 Bing Mapsで円を描きたい場合は、MapPolyonクラスを使用して円を構成する点を計算します。これにより、マップをズームしても、ビューポートウィンドウでクリップされないように拡大する円が表示されます。ここでは、これを行う方法のブログ記事です:http://silverlightfoundry.blogspot.co.uk/2009/06/bing-live-maps-silverlight-control-part.html