zoukankan      html  css  js  c++  java
  • Bing Maps控件【WP7学习札记之十七】

          本节是WP7学习札记的第十六篇了,接近学习的尾声,本节主要讲Bing Maps控件的一般使用,不讲如何注册Bing Maps 账户,申请Bing Maps 使用key,内容页不包含使用Bing Maps SOAP服务计算路径~相关内容请参考MSDN的文档,地址为:http://msdn.microsoft.com/zh-cn/library/ff941096(v=vs.92).aspx

          内容主要为:地图的缩放、地图模式的设置、定位、Pushpin等,废话不多说,附上代码:

    MainPage.xaml的xaml代码如下:

    View Code
    <phone:PhoneApplicationPage 
    x:Class="BingMaps.MainPage"
    xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone
    ="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell
    ="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d
    ="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc
    ="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable
    ="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily
    ="{StaticResource PhoneFontFamilyNormal}"
    FontSize
    ="{StaticResource PhoneFontSizeNormal}"
    Foreground
    ="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations
    ="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible
    ="True" xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps">

    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    <TextBlock x:Name="ApplicationTitle" Text="演示程序" Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock x:Name="PageTitle" Text="Bing Maps" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <my:Map Height="475" HorizontalAlignment="Left" Name="map1" VerticalAlignment="Top" Width="456" />
    <Button Content="+" Height="72" HorizontalAlignment="Left" Margin="0,481,0,0" Name="btnZoomOut" VerticalAlignment="Top" Width="160" Click="btnZoomOut_Click" />
    <Button Content="-" Height="72" HorizontalAlignment="Left" Margin="0,535,0,0" Name="btnZoomIn" VerticalAlignment="Top" Width="160" Click="btnZoomIn_Click" />
    <Button Content="地图" Height="72" HorizontalAlignment="Left" Margin="149,481,0,0" Name="btnRoad" VerticalAlignment="Top" Width="160" Click="btnRoad_Click" />
    <Button Content="卫星" Height="72" HorizontalAlignment="Left" Margin="149,535,0,0" Name="btnAerial" VerticalAlignment="Top" Width="160" Click="btnAerial_Click" />
    <Button Content="定位" Height="72" HorizontalAlignment="Left" Margin="296,481,0,0" Name="btnCenter" VerticalAlignment="Top" Width="160" Click="btnCenter_Click" />
    <Button Content="图钉" Height="72" HorizontalAlignment="Left" Margin="296,535,0,0" Name="btnPushpin" VerticalAlignment="Top" Width="160" Click="btnPushpin_Click" />
    </Grid>
    </Grid>

    <!--Sample code showing usage of ApplicationBar-->
    <!--<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
    <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
    <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
    <shell:ApplicationBar.MenuItems>
    <shell:ApplicationBarMenuItem Text="MenuItem 1"/>
    <shell:ApplicationBarMenuItem Text="MenuItem 2"/>
    </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>
    -->

    </phone:PhoneApplicationPage>

    MainPage.xaml.cs代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using Microsoft.Phone.Controls;
    //
    using Microsoft.Phone.Controls.Maps;
    using System.Device.Location;

    namespace BingMaps
    {
    public partial class MainPage : PhoneApplicationPage
    {
    // Constructor
    public MainPage()
    {
    InitializeComponent();
    }

    private void btnZoomOut_Click(object sender, RoutedEventArgs e)
    {
    double zoom;
    zoom = map1.ZoomLevel;
    map1.ZoomLevel = ++zoom;
    }

    private void btnZoomIn_Click(object sender, RoutedEventArgs e)
    {
    double zoom;
    zoom = map1.ZoomLevel;
    map1.ZoomLevel = --zoom;
    }

    private void btnRoad_Click(object sender, RoutedEventArgs e)
    {
    map1.Mode = new RoadMode();
    }

    private void btnAerial_Click(object sender, RoutedEventArgs e)
    {
    map1.Mode = new AerialMode();
    }

    private void btnCenter_Click(object sender, RoutedEventArgs e)
    {
    map1.SetView(new GeoCoordinate(38.90, -77.04), 15);
    }

    private void btnPushpin_Click(object sender, RoutedEventArgs e)
    {
    MapLayer mapLayer = new MapLayer();
    map1.Children.Add(mapLayer);
    Pushpin pushpin = new Pushpin() {
    Location= new GeoCoordinate(38.8976,-77.0365),
    Content="白宫"
    };
    mapLayer.AddChild (pushpin, pushpin.Location);
    }
    }
    }

    程序运行效果如下:

     

         

  • 相关阅读:
    词根——rect
    6
    7
    5
    3
    4
    2
    1
    DBUtils
    Websocket
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2418650.html
Copyright © 2011-2022 走看看