zoukankan      html  css  js  c++  java
  • WP8.1 Study2:MapControl控件的应用

    总的界面布局如下:

    其xaml代码如下:

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="450"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <Maps:MapControl Grid.Row="0" Name="myMap"/>
            
            <StackPanel Grid.Row="1">
                <TextBlock Name="sliderTextblock" HorizontalAlignment="Center" Style="{ThemeResource ControlHeaderTextBlockStyle}" />
                <Slider Name="mapSlider" ValueChanged="mapSlider_ValueChanged" Maximum="18" Minimum="0"/>
                <StackPanel Orientation="Horizontal">
                    <Button Name="GetPositionButton" Content="Get" Click="GetPositionButton_Click"/>
                    <Button Name="SetPositonButton" Content="Set" Click="SetPositonButton_Click"/>
                </StackPanel>
                <TextBlock Name="showMapTextblock" />
                
            </StackPanel>
    
        </Grid>

    对应的主要的C#代码如下:

     protected async override void OnNavigatedTo(NavigationEventArgs e)
            {
                var locator = new Geolocator();//开启位置
                locator.DesiredAccuracyInMeters = 50;//设置位置服务的准确度  50米
    
                var position = await locator.GetGeopositionAsync(); //得到当前的位置
                await myMap.TrySetViewAsync(position.Coordinate.Point,18D);// MapControl控件显示当前位置(point是纬度和经度;18D为当前精度
                mapSlider.Value = myMap.ZoomLevel;
                
            }
    
            private void GetPositionButton_Click(object sender, RoutedEventArgs e)
            {
                showMapTextblock.Text = string.Format("{0},{1}", myMap.Center.Position.Longitude, myMap.Center.Position.Latitude);
            }
    
            private async void SetPositonButton_Click(object sender, RoutedEventArgs e)
            {
                var setposition = new Windows.Devices.Geolocation.BasicGeoposition();
                setposition.Latitude=47;
                setposition.Longitude=-122;
                var mypoint=new Windows.Devices.Geolocation.Geopoint(setposition);
                if (await myMap.TrySetViewAsync(mypoint, 18D))
                {
                    //
                }
            }
          
    
            private void mapSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
            {
                if (myMap!=null)
                {
                    myMap.ZoomLevel = e.NewValue;
                    double tt;
                    tt = e.NewValue / 18 * 100;
                    sliderTextblock.Text = string.Format("{0}%", (int)tt);
                }
            }
        }

    同时还需注意在Package文件中把位置功能打开,相应步骤如下:

  • 相关阅读:
    js中属性和方法的类型和区别
    深入理解js构造函数
    null和undefined区别(转)
    理解闭包 js回收机制
    php:判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装MEMCACHED
    php:封装了个时间函数,返回类似“1分钟前发布”,“5小时前发布”,“3年前发布”
    php:获取一个表不含text类型的全部字段
    php:两个文件夹递归地比较,没有的文件自动复制过去
    php:php相关的函数或用法记录
    js:常用到的js操作记录
  • 原文地址:https://www.cnblogs.com/NEIL-X/p/4097603.html
Copyright © 2011-2022 走看看