mobileazure和高德地图查看已记录位置

原创 2013年12月05日 10:51:58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using weizhiyuntest.Resources;
using Microsoft.WindowsAzure.MobileServices;


using Newtonsoft.Json;
using Com.AMap.Api.Maps;
using Com.AMap.Api.Maps.Model;
using System.Windows.Media;
using Com.AMap.Api.Services.Results;
using Com.AMap.Api.Services;


namespace weizhiyuntest
{
   
    public partial class MainPage : PhoneApplicationPage
    {
        AMapGeolocator mylocation;
      public static  AMap amap;
      AMapMarker marker;
      //圆
      AMapCircle circle;
        private IMobileServiceTable<weizhi> ta = App.MobileService.GetTable<weizhi>();
      //  List<xy> xyo = new List<xy>();
        List<LatLng> xyo = new List<LatLng>();
        LatLng dhstart;
        LatLng dhend;
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
          
           
            // 用于本地化 ApplicationBar 的示例代码
            //BuildLocalizedApplicationBar();
        }


        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            weizhi w = new weizhi() { lx = "1231", ly = "2424" };
      // await    ta.InsertAsync(w);
            DateTime dt1 = dp1.Value.Value;
       //    var biao = await App.MobileService.GetTable<weizhi>().Where(h => h.Id != null).ToCollectionAsync();
            var biao1 = await App.MobileService.GetTable<weizhi>().ToListAsync();
            var biao = biao1.Where(h => h.riqi.DayOfYear == dt1.DayOfYear && h.riqi.Year == dt1.Year).ToList();


         //   var biao = await App.MobileService.GetTable<weizhi>().Where(h => h.riqi.DayOfYear == dt1.DayOfYear && h.riqi.Year == dt1.Year).ToCollectionAsync();
            int a = 0;
            foreach (var b in biao.ToList())
            {
                if (!xyo.Contains(new LatLng(Convert.ToDouble(b.lx),Convert.ToDouble(b.ly)))) 
                {


                    xyo.Add(new LatLng(Convert.ToDouble(b.lx),Convert.ToDouble(b.ly)));
                }
            }


            amap.AddPolyline(new AMapPolylineOptions()
            {
                Points = xyo,
                Color = Color.FromArgb(255, 0, 0, 255),
                Width = 4,
            });
           
 
  


     //  lsta.ItemsSource = xyo;
        }


        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            if (amap == null)
            {
                this.ContentPanel.Children.Add(amap = new AMap());
                amap.UpdateLayout();
                amap.Tap += amap_Tap;
            }
            else
            {
                this.ContentPanel.Children.Add(amap);
                amap.Tap += amap_Tap;
            }
        }


        private void PhoneApplicationPage_Unloaded(object sender, RoutedEventArgs e)
        {
            amap = null;
            this.ContentPanel.Children.Clear();
            
        }
        void amap_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            //throw new NotImplementedException();
            Point p = e.GetPosition(amap);//获得在map容器的像素坐标


            this.dhend = amap.GetProjection().FromScreenLocation(p);
            marker = amap.AddMarker(new AMapMarkerOptions()
            {
                Position = this.dhend,
                Title = "Title",
                Snippet = "Snippet",
                IconUri = new Uri("Images/AZURE.png", UriKind.Relative),
            });
        }
       


        private void ListPicker_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
       // string yonghu=    (sender as ListPicker).SelectedItem.ToString();
      //  int a = 3;
            
            
           
// 在此处添加事件处理程序实现。
        }


        private void ListPickerItem_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            //this.ContentPanel.Visibility = Visibility.Collapsed;
           
        }


        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            mylocation = new AMapGeolocator();
            mylocation.Start();
            //触发位置改变事件
            mylocation.PositionChanged += mylocation_PositionChanged;
        }


        // 用于生成本地化 ApplicationBar 的示例代码
        //private void BuildLocalizedApplicationBar()
        //{
        //    // 将页面的 ApplicationBar 设置为 ApplicationBar 的新实例。
        //    ApplicationBar = new ApplicationBar();


        //    // 创建新按钮并将文本值设置为 AppResources 中的本地化字符串。
        //    ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
        //    appBarButton.Text = AppResources.AppBarButtonText;
        //    ApplicationBar.Buttons.Add(appBarButton);


        //    // 使用 AppResources 中的本地化字符串创建新菜单项。
        //    ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
        //    ApplicationBar.MenuItems.Add(appBarMenuItem);
        //}


        void mylocation_PositionChanged(AMapGeolocator sender, AMapPositionChangedEventArgs args)
        {
            this.dhstart = args.LngLat;
            this.Dispatcher.BeginInvoke(() =>
            {
                if (marker == null)
                {
                    //添加圆
                    circle = amap.AddCircle(new AMapCircleOptions()
                    {
                        Center = args.LngLat,//圆点位置
                        Radius = (float)args.Accuracy,//半径
                        FillColor = Color.FromArgb(80, 100, 150, 255),
                        StrokeWidth = 2,//边框粗细
                        StrokeColor = Color.FromArgb(80, 0, 0, 255),//边框颜色


                    });


                    //添加点标注,用于标注地图上的点
                    marker = amap.AddMarker(
                   new AMapMarkerOptions()
                   {
                       Position = args.LngLat,//图标的位置
                       Title = "我的位置",
                       IconUri = new Uri("Images/marker_gps_no_sharing.png", UriKind.Relative),//图标的URL
                       Anchor = new Point(0.5, 0.5),//图标中心点


                   });
                }
                else
                {
                    //点标注和圆的位置在当前经纬度
                    marker.Position = args.LngLat;
                    circle.Center = args.LngLat;
                    circle.Radius = (float)args.Accuracy;//圆半径
                }


                //设置当前地图的经纬度和缩放级别
                amap.MoveCamera(CameraUpdateFactory.NewLatLngZoom(args.LngLat, 15));
              
            });
        }


        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            GetNavigationDriving(this.dhstart, this.dhend);
        }
        private async void GetNavigationDriving(LatLng start, LatLng end)
        {
            //请求查询,origin、destination为起点和终点,是必选项  
            AMapRouteResults rts = await AMapNavigationSearch.DrivingNavigation(start.longitude, start.latitude, end.longitude, end.latitude, Extensions.All);
            if (rts.Erro == null)
            {
                if (rts.Count == 0)
                {
                    MessageBox.Show("无查询结果");
                    return;
                }
                AMapRoute route = rts.Route;
                List<AMapPath> paths = route.Paths.ToList();
                List<LatLng> lnglats = new List<LatLng>();
                foreach (AMapPath item in paths)
                {
                    
                    //画路线  
                    List<AMapStep> steps = item.Steps.ToList();
                    foreach (AMapStep st in steps)
                    {
                        
                        lnglats = latLagsFromString(st.Polyline);
                        amap.AddPolyline(new AMapPolylineOptions()
                        {
                            Points = latLagsFromString(st.Polyline),
                            Color = Color.FromArgb(255, 0, 0, 255),
                            Width = 4,
                        });
                    }
                }
            }
            else
            {
                MessageBox.Show(rts.Erro.Message);
            }
        }
        private List<LatLng> latLagsFromString(string polyline)
        {
            List<LatLng> latlng = new List<LatLng>();


            string[] arrystring = polyline.Split(new char[] { ';' });
            foreach (String str in arrystring)
            {
                String[] lnglatds = str.Split(new char[] { ',' });
                latlng.Add(new LatLng(Double.Parse(lnglatds[1]), Double.Parse(lnglatds[0])));
            }
            return latlng;


        }
    }
  
}

跟我学在高德地图——标注我的位置

在高德地图上展示当前位置
  • guchuanhang
  • guchuanhang
  • 2016年06月25日 18:19
  • 6025

高德地图使用(一)在页面中通过自动提示选择位置,标点及获取详细信息

实现功能:1.自动提示 2.单击获取经纬度 3.单击标点 4.逆向地理编码获取详细信息 5.向iframe父窗口传值 6.关闭子窗口(easyui窗口) ...
  • qlp3643_1
  • qlp3643_1
  • 2016年10月29日 23:19
  • 3102

高德地图添加Marker后返回当前位置

今天实在是被坑到了。。。留个记录。。我是用在poi搜索后要把数据添加到地图上。只贴部分代码。@Override public void onPoiSearched(PoiResult resu...
  • lang523493505
  • lang523493505
  • 2016年09月10日 17:29
  • 3389

高德地图api之location定位

高德地图api之location定位关于定位,分为GPS定位和网络定位。本文将详细描述的浏览器定位,属于浏览器定位。这是一种通过使用高德JS-API来实现位置定位、城市定位的方法,包含了IP定位,检索...
  • Lan_Xuan
  • Lan_Xuan
  • 2015年12月22日 00:26
  • 19758

我的高德地图之定位,Marker,位置信息。

高德地图 ———定位,Marker本期给大家高德地图的展示,和定位,并显示popwindow(当前位置信息),滑动地图实时更新位置信息; 界面预览 具体实现 新司机爬坑 界面预览具体实现 //地...
  • u014107307
  • u014107307
  • 2016年05月17日 09:32
  • 7823

高德自定定位到当前位置

​private MapView mapView; private AMap aMap; private OnLocationChangedListener mListener; private...
  • qq_31043353
  • qq_31043353
  • 2015年11月28日 11:13
  • 3732

高德地图-鼠标获取坐标

1、问题背景     鼠标点击地图,获取点击处的经纬度,并将经度和纬度放到输入框中2、实现源码 高德地图-鼠标获取坐标 ...
  • you23hai45
  • you23hai45
  • 2016年05月24日 23:13
  • 5940

关于地图和偏移的那些事

本文简述那段关于地图偏移的那段故事,并给出两个解决方案: 民间高手版 高德隐藏API 关于我国使用自主知识产权,开发的火星坐标系GCJ-02,带来的地图位置偏移问题, 详情看中国地图坐标偏移算法破解...
  • f112122
  • f112122
  • 2015年09月16日 14:34
  • 2562

手把手教你高德基础地图+定位+设置Marker实现

一、基础地图部分 1.获取APPKey 在高德地图注册开发者账号,然后创建应用,使用SHA1和PackageName得到Key 2.下载SDK 下载地址:http://lbs.amap.c...
  • pan960821
  • pan960821
  • 2016年03月17日 13:38
  • 54234

android高德地图自定义定位图标并具有类似陀螺仪旋转功能。

最近开发需要集成高德地图,有自己的云图神马的。。但是遇到一个小问题。 设计跟我说:需要定位图标随着人走动或者旋转 而指向也旋转。。。。这。。。刚开始根本没想到。。。 于是乎,就去翻高德提供的api...
  • qq_34169248
  • qq_34169248
  • 2016年08月12日 16:27
  • 7136
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mobileazure和高德地图查看已记录位置
举报原因:
原因补充:

(最多只允许输入30个字)