windows phone 8开发地图相关API的调用
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(); }
实现出来的效果如图:
源代码下载地址:https://download.csdn.net/detail/lanqiuchaoren/6932593
上一篇: 刷题:数组中只出现一次的数字
下一篇: 调用方法报错ambiguous