zoukankan      html  css  js  c++  java
  • Windows Phone 8, 添加Map控件

    摘要:

    1. 添加Map控件到程序。

    2. 在Map控件中显示您当前的位置。

    内容:

    首先在WMAppManifest.xml中的Capabilities选项卡中勾选如下两项:ID_CAP_MAP, ID_CAP_LOCATION

    在XAML中添加Map控件:

            <!--ContentPanel - place additional content here-->
            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <Controls:Map x:Name="mapWithMyLocation" />
            </Grid>

    在后台代码中, 添加Convert 类使能从Windows.Devices.Geolocation; 转换到 System.Device.Location;

        public static class CoordinateConverter
        {
            public static GeoCoordinate ConvertGeocoordinate(Geocoordinate geocoordinate)
            {
                return new GeoCoordinate
                    (
                    geocoordinate.Latitude,
                    geocoordinate.Longitude,
                    geocoordinate.Altitude ?? Double.NaN,
                    geocoordinate.Accuracy,
                    geocoordinate.AltitudeAccuracy ?? Double.NaN,
                    geocoordinate.Speed ?? Double.NaN,
                    geocoordinate.Heading ?? Double.NaN
                    );
            }
        }

    添加如下命名空间:

    using System.Device.Location;
    using Windows.Devices.Geolocation;
    using System.Windows.Shapes;
    using System.Windows.Media;
    using Microsoft.Phone.Maps.Controls;

    代码实例:

    public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
            public MainPage()
            {
                InitializeComponent();
    
                // Sample code to localize the ApplicationBar
                //BuildLocalizedApplicationBar();
            }
    
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                ShowMyLocationOntheMap();
                base.OnNavigatedTo(e);
            }
    
    
            private async void ShowMyLocationOntheMap()
            {
                Geolocator myGeolocator = new Geolocator();
                Geoposition myGeoposition = await myGeolocator.GetGeopositionAsync();
                Geocoordinate myGeocoordinate = myGeoposition.Coordinate;
                GeoCoordinate myGeoCoordinate1 =
                    CoordinateConverter.ConvertGeocoordinate(myGeocoordinate);
                mapWithMyLocation.Center = myGeoCoordinate1;
                mapWithMyLocation.ZoomLevel = 17;
    
                // Create a small circle to mark the current location.
                Ellipse myCircle = new Ellipse();
                myCircle.Fill = new SolidColorBrush(Colors.Blue);
                myCircle.Height = 20;
                myCircle.Width = 20;
                myCircle.Opacity = 50;
                // Create a MapOverlay to contain the circle.
                MapOverlay myLocationOverlay = new MapOverlay();
                myLocationOverlay.Content = myCircle;
                myLocationOverlay.PositionOrigin = new Point(0.5, 0.5);
                myLocationOverlay.GeoCoordinate = myGeoCoordinate1;
                // Create a MapLayer to contain the MapOverlay.
                MapLayer myLocationLayer = new MapLayer();
                myLocationLayer.Add(myLocationOverlay);
                // Add the MapLayer to the Map.
                mapWithMyLocation.Layers.Add(myLocationLayer);
    
            }
    
        }

    参考: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj735578(v=vs.105).aspx

  • 相关阅读:
    poj 1466 Girls and Boys (最大独立集)
    hdu 3667 Transportation (拆边 ,最小费用流)
    poj 3487 The Stable Marriage Problem (稳定婚姻 GaleShapley算法 )
    ZOJ Problem Set 1239 (最小点覆盖 )
    poj 2060 Taxi Cab Scheme (最小路径覆盖)
    poj 2226 Muddy Fields (最小点覆盖)
    hdu 1281 棋盘游戏 (二分图)
    hdu 3666 THE MATRIX PROBLEM (差分约束)
    poj 1325 Machine Schedule (最小点覆盖)
    ORACLE导入导出
  • 原文地址:https://www.cnblogs.com/qixue/p/3242321.html
Copyright © 2011-2022 走看看