[英]How can I determine the correct zoom level for Bing Maps when there is only one pushpin?
[英]Bing Maps PushPin and Zoomin / Zoom out
问题1
目前,我已经设置了Bing Maps,但是我想添加一个放大和缩小按钮,当我按下搜索按钮时,它的缩放级别达到了17,我想知道我必须写两行代码为了在每次单击按钮时从缩放级别添加或删除缩放级别而编写?
问题2
我也希望在我的应用程序中使用图钉,我可以设置一个简单的图钉组以在一个位置居中,但是我希望在应用新位置时将图钉居中并留在同一位置,而不是滚动到该位置从其原始中心点断开?
这是一个简单的导航栏,提供平移按钮和缩放滑块:
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" Height="290">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Content="⇑" Width="25" Height="25" Grid.Column="1" Tag="Up" Click="PanMap_Click"/>
<Button Content="⇒" Width="25" Height="25" Grid.Row="1" Grid.Column="2" Tag="Right" Click="PanMap_Click"/>
<Button Content="⇓" Width="25" Height="25" Grid.Row="2" Grid.Column="1" Tag="Down" Click="PanMap_Click"/>
<Button Content="⇐" Width="25" Height="25" Grid.Row="1" Tag="Left" Click="PanMap_Click"/>
<Slider Name="ZoomBar" Orientation="Vertical" Height="180" Width="20" Margin="10,10" Grid.ColumnSpan="3" Grid.Row="3"
HorizontalAlignment="Center" Minimum="1" Maximum="19" SmallChange="1"/>
</Grid>
对于缩放栏,我将其设置为地图的center属性,如下所示:
<m:Map Name="MyMap" ZoomLevel="{Binding Value, ElementName=ZoomBar, Mode=TwoWay}"/>
这是平移背后的代码:
private void PanMap_Click(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
Point p;
MyMap.TryLocationToViewportPoint(MyMap.Center, out p);
if (p != null)
{
switch (b.Tag as string)
{
case "Up":
p.Y -= 50;
break;
case "Down":
p.Y += 50;
break;
case "Left":
p.X -= 50;
break;
case "Right":
p.X += 50;
break;
}
Microsoft.Maps.MapControl.WPF.Location l;
MyMap.TryViewportPointToLocation(p, out l);
MyMap.SetView(l, MyMap.ZoomLevel);
}
}
您对问题2表示什么? 如果在地图上添加图钉,则在平移时它应保持与指定坐标的连接,而不是地图中心,因为地图的中心将位于其他位置。 您是否只是想对平移时不会移动的地图进行控制?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.