【问题标题】:Bing Maps PushPin and Zoomin / Zoom out必应地图图钉和放大/缩小
【发布时间】:2015-11-17 01:54:08
【问题描述】:

问题 1

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

问题 2

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

【问题讨论】:

  • 我相信有一个ZoomLevel 属性只是一个double,您可以在单击按钮时简单地增加/减少该值。

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


【解决方案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 是什么意思?如果您将图钉添加到地图,它应该保持连接到您指定的坐标,而不是当您平移时地图的中心,因为地图的中心将是不同的位置。您是否只想在平移时不移动的地图上放置一个控件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多