頻道欄目
首頁 > 資訊 > Windows Phone > 正文

windows phone 8開發地圖相關API的調用

14-02-19        來源:[db:作者]  
收藏   我要投稿

Windows Phone 8 使用全新的地圖API,與之前Windows Phone7 采用的必應地圖有很大的區別。最主要的區別在于,wp7地圖控件是Sliverlight控件,而wp8控件直接基于wp8 SDK libraries,并且采用了諾基亞的Here‘s地圖。在兼容方面,舊的wp7控件仍然被wp8 SDK支持,但不推薦使用。

要調用wp8的地圖服務,首先開啟ID_CAP_LOCATION。之后,按照不同的需求進行不同的調用。

獲取當前位置

1.先實例化一個Geolocator類;

2.需要特別注意的是,Geolocator返回的包含當前位置信息的Geocoordinate不能直接使用。wp8的map control支持使用GeoCoordiante。因此我們可以寫一個ConverterCoordinate類來進行轉換;

3.最后將map control加到應用界面中,可以在xaml中直接加或通過cs的代碼來加入。

關鍵代碼如下:

private async void GetAndShowMyLocationOnMap()
        {
            Geolocator myGeoLoc = new Geolocator();
            myGeoLoc.DesiredAccuracy = PositionAccuracy.High;

            Geoposition myGeoposition = await myGeoLoc.GetGeopositionAsync();
            Geocoordinate myGeocoordinate = myGeoposition.Coordinate;

            GeoCoordinate myGeoCoordinate = CoordinateConverter.ConvertGeocoordinate(myGeocoordinate);
 
            Map MyMap = new Map();
            MyMap.Center = myGeoCoordinate;
            MyMap.ZoomLevel = 7;
            MyMap.LandmarksEnabled = true;
            MyMap.CartographicMode = MapCartographicMode.Hybrid;
            ContentPanel.Children.Add(MyMap);
        }
具體位置搜索:

添加System.Device程序集的引用,并且引用Microsoft.Phone.Tasks和System.Device.Location命名空間,注意到如果我們沒有設定搜索地點,那么地圖會默認選擇我們當前位置作為搜索地點(Center)。

private void LaunchMapTask()
        {
            MapsTask mapsTask = new MapsTask();
            mapsTask.SearchTerm = "同濟大學";
            
            mapsTask.ZoomLevel = 7;
            mapsTask.Show();
        }
路線搜索(Maps DirectionTask)

Maps Direction Task可以幫助我們方便地實現路線導航的功能。具體代碼如下:

private void MapsDirectionsTask()
        {
            MapsDirectionsTask mapsDirectionsTask = new MapsDirectionsTask();

            LabeledMapLocation StartPoint = new LabeledMapLocation("同濟大學", null);
            LabeledMapLocation EndPoint = new LabeledMapLocation("復旦大學", null);

            mapsDirectionsTask.Start = StartPoint;
            mapsDirectionsTask.End = EndPoint;

            mapsDirectionsTask.Show();
        }

實現出來的效果如圖:


源代碼下載地址:http://download.csdn.net/detail/lanqiuchaoren/6932593


相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

免费的黄色网站