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

   

windowphone 高德地图之搜索定位地点的周边热点

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

你可能感兴趣的:(window)