<Slider x:Name="PitchSlider" ... Minimum="0" Maximum="70" Value="0" ValueChanged="PitchValueChanged"/>
using Microsoft.Phone.Maps.Controls; ... public partial class MainPage : PhoneApplicationPage { ... private void PitchValueChanged(object sender, EventArgs e) { if (PitchSlider != null) { MyMap.Pitch = PitchSlider.Value; } } ... }
using System.Device.Location; using Windows.Devices.Geolocation; public partial class MainPage : PhoneApplicationPage { ... private GeoCoordinate MyCoordinate = null; private double _accuracy = 0.0; ... private async void GetCurrentCoordinate() { ... Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracy = PositionAccuracy.High; try { Geoposition currentPosition = await geolocator.GetGeopositionAsync(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(10)); _accuracy = currentPosition.Coordinate.Accuracy; ... Dispatcher.BeginInvoke(() => { MyCoordinate = new GeoCoordinate(currentPosition.Coordinate.Latitude, currentPosition.Coordinate.Longitude); ... }); } catch (Exception ex) { // – MessageBox.Show("Current location cannot be obtained. Check that location service is turned on in phone settings."); } ... } ... }
using using Microsoft.Phone.Maps.Services; public partial class MainPage : PhoneApplicationPage { ... private ReverseGeocodeQuery MyReverseGeocodeQuery = null; ... private void Marker_Click(object sender, EventArgs e) { Polygon p = (Polygon)sender; GeoCoordinate geoCoordinate = (GeoCoordinate)p.Tag; MyReverseGeocodeQuery = new ReverseGeocodeQuery(); MyReverseGeocodeQuery.GeoCoordinate = new GeoCoordinate(geoCoordinate.Latitude, geoCoordinate.Longitude); MyReverseGeocodeQuery.QueryCompleted += ReverseGeocodeQuery_QueryCompleted; MyReverseGeocodeQuery.QueryAsync(); } private void ReverseGeocodeQuery_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e) { if (e.Error == null) { if (e.Result.Count > 0) { MapAddress address = e.Result[0].Information.Address; String msgBoxText = ""; ... if (address.Country.Length > 0) msgBoxText += "\n" + address.Country; MessageBox.Show(msgBoxText, AppResources.ApplicationTitle, MessageBoxButton.OK); } ... } } ... }
using Microsoft.Phone.Maps.Services; public partial class MainPage : PhoneApplicationPage { ... private GeoCoordinate MyCoordinate = null; private List<GeoCoordinate> MyCoordinates = new List<GeoCoordinate>(); private GeocodeQuery MyGeocodeQuery = null; private bool _isRouteSearch = false; // True , false ... private void SearchForTerm(String searchTerm) { ... MyGeocodeQuery = new GeocodeQuery(); MyGeocodeQuery.SearchTerm = searchTerm; MyGeocodeQuery.GeoCoordinate = MyCoordinate == null ? new GeoCoordinate(0, 0) : MyCoordinate; MyGeocodeQuery.QueryCompleted += GeocodeQuery_QueryCompleted; MyGeocodeQuery.QueryAsync(); } private void GeocodeQuery_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e) { ... if (e.Error == null) { if (e.Result.Count > 0) { if (_isRouteSearch) // { ... } else // { // MyCoordinates . for (int i = 0; i < e.Result.Count; i++) { MyCoordinates.Add(e.Result[i].GeoCoordinate); } ... } } else { MessageBox.Show("No match found. Narrow your search eg Seattle WA."); } } ... }
public partial class MainPage : PhoneApplicationPage { ... private GeoCoordinate MyCoordinate = null; private List<GeoCoordinate> MyCoordinates = new List<GeoCoordinate>(); private RouteQuery MyRouteQuery = null; private Route MyRoute = null; private MapRoute MyMapRoute = null; private bool _isRouteSearch = false; // True , false private TravelMode _travelMode = TravelMode.Driving; // Travel mode .... private void GeocodeQuery_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e) { ... if (e.Error == null) { if (e.Result.Count > 0) { if (_isRouteSearch) // { // MyCoordinates.Add(e.Result[0].GeoCoordinate); // List<GeoCoordinate> routeCoordinates = new List<GeoCoordinate>(); routeCoordinates.Add(MyCoordinate); routeCoordinates.Add(e.Result[0].GeoCoordinate); CalculateRoute(routeCoordinates); } else // { ... } } ... } ... } private void CalculateRoute(List<GeoCoordinate> route) { ... MyRouteQuery = new RouteQuery(); MyRouteQuery.TravelMode = _travelMode; MyRouteQuery.Waypoints = route; MyRouteQuery.QueryCompleted += RouteQuery_QueryCompleted; MyRouteQuery.QueryAsync(); } private void RouteQuery_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e) { ... if (e.Error == null) { MyRoute = e.Result; MyMapRoute = new MapRoute(MyRoute); MyMap.AddRoute(MyMapRoute); // List<string> routeInstructions = new List<string>(); foreach (RouteLeg leg in MyRoute.Legs) { for (int i = 0; i < leg.Maneuvers.Count; i++) { RouteManeuver maneuver = leg.Maneuvers[i]; string instructionText = maneuver.InstructionText; ... routeInstructions.Add(instructionText); } } ... } ... } }
Source: https://habr.com/ru/post/175003/
All Articles