Bing在c#中映射silverlight控件

时间:2010-12-25 20:43:05

标签: c# silverlight silverlight-4.0 bing-maps

想知道你是否可以帮我解决这个问题。我试图用下面的c#代码控制我的地图。但由于某些原因,当我调用这种方法时它没有做任何事情,我不太清楚为什么?!不确定我是否正确使用.Equals?

C#

private void NW_zoom(object sender, ManipulationStartedEventArgs e)
    {
        GeoCoordinate abc = new GeoCoordinate(51.510, -0.1151);
        Map.CenterProperty.Equals(abc);

        var zoom = 12;
        Map.ZoomLevelProperty.Equals(zoom);
     }

XMAL地图控件:

 <maps:Map ZoomLevel="10" Mode="Road" Margin="0,0,0,54"   ZoomBarVisibility="Visible" ScaleVisibility="Visible" CredentialsProvider="xxxxxxx" Grid.Row="1">
       <maps:Map.Center>
            <device:GeoCoordinate Latitude="51.510669" Longitude="-0.11512800"/>
        </maps:Map.Center> 
        <maps:MapLayer  x:Name="QuakeLayer" Height="726" Width="477" /> 
    </maps:Map>

4 个答案:

答案 0 :(得分:1)

Equals比较值,但不会设置它们。

尝试

Map.CenterProperty = abc;

Map.ZoomLevelProperty = zoom;

答案 1 :(得分:1)

没有使用此控件我无法回答您的问题,但

Map.CenterProperty.Equals(abc);

只执行布尔比较,我很确定你要设置一些属性,而不是像

中那样
Map.CenterPropert= abc;

(同样适用于其他财产)

答案 2 :(得分:1)

我认为您要完成的工作是通过以下方式完成的:

Map.SetView(new Location(51.510, -0.1151), 12);

编辑 -

你是对的,WP7 bing Map控件不支持上面的代码

这应该适合你:

map1.SetView(new System.Device.Location.GeoCoordinate(51.510, -0.1151), 12.00);

答案 3 :(得分:0)

ZoomLevelProperty是一个属性,因此如果要在后面的代码中设置它,则需要使用地图对象的SetValue方法。

map.SetView(Map.ZoomLevelProperty, zoom);