Bing Maps PushPin和Zoomin /缩小

时间:2015-11-15 20:03:35

标签: wpf vb.net zoom bing-maps pushpin

问题1

我目前设置了Bing地图但是我希望添加一个放大和缩小按钮,此时我按下一个搜索按钮,它将我带到17的缩放级别,我想知道两行代码是什么我必须编写,以便在每次单击按钮时从缩放级别添加或删除一个?

问题2

我也希望在我的应用程序中使用图钉我可以设置一个简单的设置在一个位置居中,但我希望它在应用新位置时居中并保持在同一位置而不是滚动时它与原来的中心点断开了吗?

1 个答案:

答案 0 :(得分:1)

这是一个简单的导航栏,提供平移按钮和缩放滑块:

<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="&#8657;" Width="25" Height="25" Grid.Column="1" Tag="Up" Click="PanMap_Click"/>
    <Button Content="&#8658;" Width="25" Height="25" Grid.Row="1" Grid.Column="2" Tag="Right" Click="PanMap_Click"/>
    <Button Content="&#8659;" Width="25" Height="25" Grid.Row="2" Grid.Column="1" Tag="Down" Click="PanMap_Click"/>
    <Button Content="&#8656;" 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> 

对于缩放栏,我将它作为地图的中心属性,如下所示:

<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的意思是什么?如果您向地图添加图钉,它应该保持连接到您指定的坐标而不是地图的中心,因为地图的中心将是不同的位置。您是否只想在平移时对地图进行控制?