/// <summary> /// Adds a line to the map /// </summary> /// <param name="line">The line to add</param> private void AddLine(TKPolyline line) { line.PropertyChanged += OnLinePropertyChanged; var polyline = new MapPolyline(); if (line.Color != Color.Default) { polyline.StrokeColor = line.Color.ToUWPColor(); } if (line.LineWidth > 0) { polyline.StrokeThickness = line.LineWidth; } if (line.LineCoordinates != null) { polyline.Path = new Geopath(line.LineCoordinates.Select(i => new BasicGeoposition { Latitude = i.Latitude, Longitude = i.Longitude })); } Map.MapElements.Add(polyline); _polylines.Add(line, polyline); }
void CreateLine(GenerateResponseFP fp) { var coordinates = new List <TK.CustomMap.Position>(); Routes.Clear(); foreach (var item in fp.Positions) { coordinates.Add(new TK.CustomMap.Position(item.Latitude, item.Longitude)); } var line = new TKPolyline { Color = Color.Red, LineWidth = 2f, LineCoordinates = coordinates }; Routes.Add(line); }
/// <summary> /// Adds a route to the map /// </summary> /// <param name="line">The route to add</param> private void AddLine(TKPolyline line) { line.PropertyChanged += OnLinePropertyChanged; var polylineOptions = new PolylineOptions(); if (line.Color != Color.Default) { polylineOptions.InvokeColor(line.Color.ToAndroid().ToArgb()); } if (line.LineWidth > 0) { polylineOptions.InvokeWidth(line.LineWidth); } if (line.LineCoordinates != null) { polylineOptions.Add(line.LineCoordinates.Select(i => i.ToLatLng()).ToArray()); } this._polylines.Add(line, this._googleMap.AddPolyline(polylineOptions)); }
/// <summary> /// Getroute/Draw route between two given position. /// </summary> public async void Getroute() { GmsDirectionResult Routeresult = await GmsDirection. Instance.CalculateRoute(new Position(17.4474, 78.3762), new Position(17.4375, 78.4483), GmsDirectionTravelMode.Driving, null); var routes = Routeresult.Routes.FirstOrDefault(); Lines = new ObservableCollection <TKPolyline>(); Pins = new ObservableCollection <TKCustomMapPin>(); IEnumerable <Position> pos = routes.Polyline.Positions; var line = new TKPolyline { Color = Color.Green, LineWidth = 10f, LineCoordinates = pos.ToList() }; Pins.Add(new TKCustomMapPin { //Route = route, //IsSource = true, IsDraggable = true, Position = new Position(17.4474, 78.3762), ShowCallout = true, DefaultPinColor = Color.Green }); Pins.Add(new TKCustomMapPin { //Route = route, //IsSource = false, IsDraggable = true, Position = new Position(17.4375, 78.4483), ShowCallout = true, DefaultPinColor = Color.Red }); Lines.Add(line); //var route = new TKRoute //{ // TravelMode = TKRouteTravelMode.Driving, // Source = new Position(17.4474, 78.3762), // Destination = new Position(17.4375,78.4483), // Color = Color.Red, // LineWidth = 5 //}; //Routes = new ObservableCollection<TKRoute>(); //Pins = new ObservableCollection<TKCustomMapPin>(); //Pins.Add(new RoutePin //{ // Route = route, // IsSource = true, // IsDraggable = true, // Position = new Position(17.4474, 78.3762), // ShowCallout = true, // DefaultPinColor = Color.Green //}); //Pins.Add(new RoutePin //{ // Route = route, // IsSource = false, // IsDraggable = true, // Position = new Position(17.4375, 78.4483), // ShowCallout = true, // DefaultPinColor = Color.Red //}); //Routes.Add(route); }