想知道你是否可以帮我解决这个问题。我试图用下面的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>
答案 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);