Windows phone 7 WP7地图控制处的图钉尺寸

Windows phone 7 WP7地图控制处的图钉尺寸,windows-phone-7,map,pushpin,Windows Phone 7,Map,Pushpin,在尝试实现显示当前用户位置的逻辑时,我遇到了一个问题 <Maps:Pushpin Location="{Binding MyLocation}" Canvas.ZIndex="1000" PositionOrigin="Center" > <Maps:Pushpin.Template> <ControlTemplate> <Grid>

在尝试实现显示当前用户位置的逻辑时,我遇到了一个问题

<Maps:Pushpin Location="{Binding MyLocation}" Canvas.ZIndex="1000" PositionOrigin="Center"  >
            <Maps:Pushpin.Template>
                <ControlTemplate>
                    <Grid>
                        <Ellipse Width="{Binding MyAccuracyViewSize}" Height="{Binding MyAccuracyViewSize}"
                                 Fill="#60008000" Stroke="Green" StrokeThickness="3"/>
                        <Ellipse Width="18" Height="18" Fill="#A0FF4500" VerticalAlignment="Center" HorizontalAlignment="Center"  />
                    </Grid>
                </ControlTemplate>
            </Maps:Pushpin.Template>
        </Maps:Pushpin>

较大的绿色圆圈表示精确区域。其大小(以像素为单位)随缩放而变化。如果缩放级别很大,它会变得相当大(>480像素)。在这一点上,它会被屏幕分辨率裁剪。AFAIK WP7控制尺寸限制为2000x2000 px

似乎这是一种地图控制限制

有没有办法去掉这个限制来显示2000x2000像素大小的椭圆

谢谢

MapPolygon怎么样

void OnPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
        {
            SecondsCounter = 0; //reset counter
            double accuracy = e.Position.Location.HorizontalAccuracy;
        if (accuracy < e.Position.Location.VerticalAccuracy)
        {
            accuracy = e.Position.Location.VerticalAccuracy;
        }

        if (PolyCircle == null)
        {
            PolyCircle = new MapPolygon();
            PolyCircle.Opacity = 0.7;
            //Set the polygon properties 

            PolyCircle.Fill = new SolidColorBrush(Colors.Orange);
            PolyCircle.Stroke = new SolidColorBrush(Colors.Purple);
            PolyCircle.StrokeThickness = 4;

            map1.Children.Add(PolyCircle);
        }

        PolyCircle.Locations = CreateCircle(e.Position.Location, accuracy);


        map1.Center = e.Position.Location;    

    }

    public static double ToRadian(double degrees)
    {
        return degrees * (Math.PI / 180);
    }

    public static double ToDegrees(double radians)
    {
        return radians * (180 / Math.PI);
    }

    public static LocationCollection CreateCircle(GeoCoordinate center, double radius)
    {
        var earthRadius = 6367000; // radius in meters
        var lat = ToRadian(center.Latitude); //radians
        var lng = ToRadian(center.Longitude); //radians
        var d = radius / earthRadius; // d = angular distance covered on earth's surface
        var locations = new LocationCollection();

        for (var x = 0; x <= 360; x++)
        {
            var brng = ToRadian(x);
            var latRadians = Math.Asin(Math.Sin(lat) * Math.Cos(d) + Math.Cos(lat) * Math.Sin(d) * Math.Cos(brng));
            var lngRadians = lng + Math.Atan2(Math.Sin(brng) * Math.Sin(d) * Math.Cos(lat), Math.Cos(d) - Math.Sin(lat) * Math.Sin(latRadians));

            locations.Add(new GeoCoordinate(ToDegrees(latRadians), ToDegrees(lngRadians)));
        }

        return locations;
    }
void OnPositionChanged(对象发送方,地理位置变更数据源)
{
SecondsCenter=0;//重置计数器
双精度=位置、位置、水平精度;
if(精度对于(var x=0;x您是否需要根据当前的缩放级别值调整MyAccuracyViewSize?当然。它显示了用户可能所在的区域。我知道以米为单位的圆半径。如果我想在地图上投影它,我必须尊重缩放级别。例如,缩放==10的50个像素是5公里,而缩放==18的50个像素可能是100米。您尝试过s吗调整圆的大小而不是提供更高的像素值?