• 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.在调试的时候发现周边的热点信息

       

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

  • 相关阅读:
    css
    css加号波浪号
    C++对象池
    C++11 智能指针
    C++内存泄漏检测(调试工具)
    JSONP是个嘛玩意?解决跨域问题?
    使用django + KindEditor 开发个人博客系统
    前端文本框插件KindEditor
    jQuery AJAX
    Django ModelForm表单验证
  • 原文地址:https://www.cnblogs.com/fxiaoquan/p/2652103.html
Copyright © 2020-2023  润新知