zoukankan      html  css  js  c++  java
  • windowphone 高德地图之搜索定位地点的周边热点

    1.在这次学习中首先是根据手机位置服务获取当前所在位置的经纬度。

              double x = 39.9081397215191;
             double y = 116.324735831984;
    
            /// <summary>
            /// 获取定位经纬度
             /// </summary>
            private void GetStartGeoCoordinate()
            {
                GeoCoordinateWatcher gwatcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
                gwatcher.PositionChanged += (sender, e) =>
                {
                    x = e.Position.Location.Latitude;//纬度
                       y = e.Position.Location.Longitude;//经度
                };
                gwatcher.Start();
            }

    2.获取经纬以后,由于在地图中经纬度坐标存在偏差,故需要调用高德地图api中的MRGCSearch 类中的MRGCSearch.GPSToOffset 方法进行经纬度坐标的纠偏。

     

     private void OffSetReGeoCodeLacation(double x,double y)
            {
    
                MRGCSearch.GPSToOffset(new double[] { y}, new double[] {x}, (mr) =>
                    {
                        MPOISearch.PoiSearchByCenLngLat(mr.RGCItemList[0].LngX, mr.RGCItemList[0].LatY, "", "010", searchpoiCenLnglat);
                    });
    
            }


    3.在GPSToOffset方法中的Action<MRGCSearchResult> action对象中的RGCItemList[0].LatY,RGCItemList[0].LatX获取当前纠偏后的坐标,从而可以根据MPOISearch类中的PoiSearchByCenLngLat方法


    centerPoiX
    类型:System.Double
    查询中心点经度
    centerPoiY
    类型:System.Double
    查询中心点纬度
    keywords
    类型:System.String
    查询关键字(必填,可以为空字符串,用户只按类型查询)
    city
    类型:System.String
    查询关键字所在城市的区号或名称(必填),全国为total
    callBack
    类型:System.Action<(Of <(<'MPOISearchResult>)>)>
    回调方法
    public
    static void PoiSearchByCenLngLat(
       
    double centerPoiX,
       
    double centerPoiY,
       
    string keywords,
       
    string city,
        Action
    <MPOISearchResult> callBack
    )

    根据中心点的坐标(x,y), 查询周边POI。

    5.

     其中callBack类型:MPOISearchResult的回调方法

     public void searchpoiCenLnglat(MPOISearchResult sender)
            {
                if (sender.Erro == null)
                {
                    List<MOverlay> list = new List<MOverlay>();
                    for (int i = 0; i < sender.POIs.Count; i++)
                    {
                        MMarker mk;
    
                        mymap.Children.Add(mk = new MMarker()
                        {
                            LngLat = new MLngLat(sender.POIs[i].X, sender.POIs[i].Y),
                            TipFrameworkElement = new MTip() { Title = sender.POIs[i].Name, ContentText = sender.POIs[i].Address }
                           
                        });
                        list.Add(mk);
                    }
    
                    //根据覆盖物来调整视野
                    mymap.SetFitview(list);
                }
                else
                {
                    MessageBox.Show(sender.Erro.Message);
                }
            }

     6.在调试的时候发现周边的热点信息

       

    从而可以进一步利用这些信息。

  • 相关阅读:
    基于AOP实现Ibatis的缓存配置过期策略
    Step by Step构建自己的ORM系列配置管理层
    云计算从基础到应用架构系列云计算的演进
    设计模式系列桥接模式
    云计算从基础到应用架构系列云计算的概念
    云计算从基础到应用架构系列虚拟化的技术(上)
    设计模式系列装饰模式
    typeof和GetType区别
    白话学习MVC(四)URL路由
    五、DirectX编程
  • 原文地址:https://www.cnblogs.com/fxiaoquan/p/2652103.html
Copyright © 2011-2022 走看看