void DrawCircles(Point e) { if (circleOptionsInner == null) { circleOptionsInner = new CircleOptions().InvokeCenter(new LatLng(e.X, e.Y)).InvokeRadius(80).InvokeFillColor(Android.Graphics.Color.ParseColor("#0D15b8fe")).InvokeStrokeWidth(0); circleInner = NativeMap.AddCircle(circleOptionsInner); } if (circleOptionsOuter == null) { circleOptionsOuter = new CircleOptions().InvokeCenter(new LatLng(e.X, e.Y)).InvokeRadius(350).InvokeFillColor(Android.Graphics.Color.ParseColor("#1A15b8fe")).InvokeStrokeWidth(0); circleOuter = NativeMap.AddCircle(circleOptionsOuter); } if (firstLoad == true) { NativeMap.MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(e.X, e.Y), 15.8f)); var animation = new Animation(v => circleInner.Radius = v, 25, 200); animation.Commit(Xamarin.Forms.Application.Current.MainPage, "SimpleAnimation", 500, 2000, Easing.CubicOut, null, () => true); var fadeEffect = new Animation(v => circleInner.FillColor = Android.Graphics.Color.ParseColor(string.Format("#{0}15b8fe", ((int)(v < 0 ? 0 : v)).ToString("D2"))), 99, -20); fadeEffect.Commit(Xamarin.Forms.Application.Current.MainPage, "FadeAnimation", 500, 2000, Easing.Linear, null, () => true); firstLoad = false; } circleInner.Center = new LatLng(e.X, e.Y); circleOuter.Center = new LatLng(e.X, e.Y); }
protected override void OnMapReady(GoogleMap map) { base.OnMapReady(map); var polylineOptions = new PolylineOptions(); polylineOptions.InvokeColor(0x702418ff); foreach (var position in routeCoordinates) { polylineOptions.Add(new LatLng(position.Latitude, position.Longitude)); } NativeMap.AddPolyline(polylineOptions); foreach (Bus bus in BusList.busList) { if (bus.route == "blue") { CircleOptions circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(bus.lat, bus.lng)); circleOptions.InvokeRadius(30); circleOptions.InvokeFillColor(0X700000ff); circleOptions.InvokeStrokeColor(0X70FFFFFF); circleOptions.InvokeStrokeWidth(5); NativeMap.AddCircle(circleOptions); } } }
protected override MarkerOptions CreateMarker(Pin pin) { if (pin is CirclePin) { //create an overlay circle, and add to map var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(pin.Position.Latitude, pin.Position.Longitude)); circleOptions.InvokeRadius(PublishedData.PinOverlayRadius); circleOptions.InvokeFillColor(0X66FF0000); circleOptions.InvokeStrokeColor(0X66FF0000); circleOptions.InvokeStrokeWidth(0); Circle circle = NativeMap.AddCircle(circleOptions); (pin as CirclePin).Overlay = circle; } // marker,or pin. var marker = new MarkerOptions(); marker.SetPosition(new LatLng(pin.Position.Latitude, pin.Position.Longitude)); marker.Anchor(0.5f, 0.5f);// set anchor to to middle of icon marker.SetTitle(pin.Label); marker.SetSnippet(pin.Address); Bitmap imageBitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.pin); Bitmap resizedIcon = Bitmap.CreateScaledBitmap(imageBitmap, 50, 50, false); marker.SetIcon(BitmapDescriptorFactory.FromBitmap(resizedIcon)); return(marker); }
protected override void OnMapReady(Android.Gms.Maps.GoogleMap map) { base.OnMapReady(map); var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(circle.Position.Latitude, circle.Position.Longitude)); circleOptions.InvokeRadius(circle.Radius); circleOptions.InvokeFillColor(0X66FF0000); circleOptions.InvokeStrokeColor(0X66FF0000); circleOptions.InvokeStrokeWidth(0); NativeMap.AddCircle(circleOptions); }
/// <summary> /// Adds a bubble that reflects the expiry range of a helicopter carrying organ /// </summary> /// <param name="heliPin"></param> private void addOrganRange(CustomPin heliPin) { var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(heliPin.Position.Latitude, heliPin.Position.Longitude)); // TODO adjust to organ countdown circleOptions.InvokeRadius(40000); circleOptions.InvokeFillColor(0X660000FF); circleOptions.InvokeStrokeColor(0X660000FF); circleOptions.InvokeStrokeWidth(0); highlightedOrganRange = new Tuple <CustomPin, Circle>(heliPin, NativeMap.AddCircle(circleOptions)); }
/// <summary> /// Minulí pozice zůstávají na mapě /// </summary> private void DrawDebugPosition() { if (debugPositionCircle != null) { debugPositionCircle.Dispose(); } debugPositionCircle = new CircleOptions(); debugPositionCircle.InvokeCenter(new LatLng(customMap.DebugPosition.Latitude, customMap.DebugPosition.Longitude)); debugPositionCircle.InvokeRadius(50); debugPositionCircle.InvokeFillColor(0X66FF0000); debugPositionCircle.InvokeStrokeColor(0X66FF0000); debugPositionCircle.InvokeStrokeWidth(0); NativeMap.AddCircle(debugPositionCircle); }
protected override NativeCircle CreateNativeItem(Circle outerItem) { var opts = new CircleOptions(); opts.InvokeCenter(new LatLng(outerItem.Center.Latitude, outerItem.Center.Longitude)); opts.InvokeRadius(outerItem.Radius.Meters); opts.InvokeStrokeWidth(outerItem.StrokeWidth * this.ScaledDensity); // TODO: convert from px to pt. Is this collect? (looks like same iOS Maps) opts.InvokeStrokeColor(outerItem.StrokeColor.ToAndroid()); opts.InvokeFillColor(outerItem.FillColor.ToAndroid()); opts.Clickable(outerItem.IsClickable); var nativeCircle = NativeMap.AddCircle(opts); // associate pin with marker for later lookup in event handlers outerItem.NativeObject = nativeCircle; return(nativeCircle); }
protected override MarkerOptions CreateMarker(Pin pin) { CustomPin customPin = (CustomPin)pin; var marker = new MarkerOptions(); marker.SetPosition(new LatLng(pin.Position.Latitude, pin.Position.Longitude)); marker.SetAlpha(0); var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(customPin.Position.Latitude, customPin.Position.Longitude)); circleOptions.InvokeRadius(1000); circleOptions.InvokeStrokeWidth(0); switch (customPin.Status) { case StatusEnum.Diagnosed: circleOptions.InvokeFillColor(0X66FF0000); circleOptions.InvokeStrokeColor(0X66FF0000); NativeMap.AddCircle(circleOptions); break; case StatusEnum.Healthy: break; case StatusEnum.Recovered: break; case StatusEnum.Symptomatic: circleOptions.InvokeFillColor(0X33FF4D26); circleOptions.InvokeStrokeColor(0X33FF4D26); NativeMap.AddCircle(circleOptions); break; default: break; } /* circleOptions.InvokeFillColor(0X66FF0000); * circleOptions.InvokeStrokeColor(0X66FF0000);*/ return(marker); }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals("VisibleRegion") && !isDrawn) { var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(circle.Position.Latitude, circle.Position.Longitude)); circleOptions.InvokeRadius(circle.Radius); circleOptions.InvokeFillColor(0X66FF0000); circleOptions.InvokeStrokeColor(0X66FF0000); circleOptions.InvokeStrokeWidth(0); NativeMap.AddCircle(circleOptions); isDrawn = true; } }
private void UpdateCircles() { circles?.ForEach(x => x.Remove()); circles = new List <Circle>(); customPins?.ForEach(x => { var circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(x.Position.Latitude, x.Position.Longitude)); circleOptions.InvokeRadius(x.Radius); circleOptions.InvokeFillColor(0X66FF0000); circleOptions.InvokeStrokeColor(0X66FF0000); circleOptions.InvokeStrokeWidth(0); circles.Add(NativeMap.AddCircle(circleOptions)); }); }
public async void PlotPositions() { _positions = new List <Position>(); for (int i = 0; i <= _posts.Count - 1; i++) { Position pos = new Position(); pos = await GetPosition(_posts[i].Address); var lat = pos.Latitude; var lng = pos.Longitude; _positions.Add(pos); } _pins = new List <Pin>(); for (int x = 0; x < _positions.Count - 1; x++) { Pin pin = new Pin { Label = "[incident]", Address = "[incident description]", Type = PinType.Place, Position = _positions[x] }; _pins.Add(pin); NativeMap.AddCircle( new CircleOptions().InvokeCenter(new LatLng(_positions[x].Latitude, _positions[x].Longitude)) .InvokeRadius(50) .InvokeStrokeColor(845249) .InvokeFillColor(214682) ); } for (int p = 0; p < _pins.Count - 1; p++) { //NativeMap.Pins.Add(_pins[p]); } }
private void DrawGrid() { System.Diagnostics.Debug.Write("@@@@@ DrawGrid"); customMap.GenerateGrid(); if (customMap.GridLines == null) { return; } //smaže vše na mapě NativeMap.Clear(); RedrawLoggedPositions(); //drawnPositionsIndices.Clear(); foreach (GridLine line in customMap.GridLines) { PolylineOptions lineOptions = GetLine(); lineOptions.Add(new LatLng(line.start.Latitude, line.start.Longitude)); lineOptions.Add(new LatLng(line.end.Latitude, line.end.Longitude)); NativeMap.AddPolyline(lineOptions); } CircleOptions gridCenterCircle = new CircleOptions(); gridCenterCircle.InvokeCenter(new LatLng(customMap.activeLocation.Center.Latitude, customMap.activeLocation.Center.Longitude)); gridCenterCircle.InvokeRadius(50); gridCenterCircle.InvokeFillColor(Android.Graphics.Color.DarkSlateBlue); gridCenterCircle.InvokeStrokeColor(0X66FF0000); gridCenterCircle.InvokeStrokeWidth(2); NativeMap.AddCircle(gridCenterCircle); }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName == CustomMap.PointsProperty.PropertyName) { if (NativeMap == null) { return; } var customMap = (CustomMap)Element; foreach (var point in customMap.Points) { var options = new CircleOptions(); options.InvokeStrokeWidth(0) .InvokeFillColor(point.Heat.ToAndroid()) .InvokeRadius(200d) .InvokeCenter(new LatLng(point.Location.Latitude, point.Location.Longitude)); NativeMap.AddCircle(options); } } }
protected override void OnMapReady(GoogleMap map) { base.OnMapReady(map); client = new HttpClient(); client.MaxResponseContentBufferSize = 256000; // add blue positions blueCoordinates.Add(new Position(33.771282, -84.392072)); blueCoordinates.Add(new Position(33.776892, -84.392088)); blueCoordinates.Add(new Position(33.776961, -84.395176)); blueCoordinates.Add(new Position(33.778180, -84.396451)); blueCoordinates.Add(new Position(33.778413, -84.401306)); blueCoordinates.Add(new Position(33.778007, -84.401955)); blueCoordinates.Add(new Position(33.777316, -84.402397));// 6th and ferst blueCoordinates.Add(new Position(33.777295, -84.404166)); blueCoordinates.Add(new Position(33.778676, -84.404192)); blueCoordinates.Add(new Position(33.778696, -84.406125)); blueCoordinates.Add(new Position(33.779625, -84.406100)); blueCoordinates.Add(new Position(33.779638, -84.402478)); blueCoordinates.Add(new Position(33.778390, -84.401328)); blueCoordinates.Add(new Position(33.777987, -84.401987)); blueCoordinates.Add(new Position(33.777316, -84.402397)); blueCoordinates.Add(new Position(33.774930, -84.402623)); blueCoordinates.Add(new Position(33.774375, -84.402450)); blueCoordinates.Add(new Position(33.773929, -84.402063)); blueCoordinates.Add(new Position(33.773688, -84.401366)); blueCoordinates.Add(new Position(33.773141, -84.397929)); blueCoordinates.Add(new Position(33.772972, -84.397483)); blueCoordinates.Add(new Position(33.772405, -84.396655)); blueCoordinates.Add(new Position(33.772355, -84.395508)); blueCoordinates.Add(new Position(33.771389, -84.395540)); blueCoordinates.Add(new Position(33.771384, -84.396136)); blueCoordinates.Add(new Position(33.768869, -84.396118)); blueCoordinates.Add(new Position(33.768857, -84.394114)); blueCoordinates.Add(new Position(33.768688, -84.393522)); blueCoordinates.Add(new Position(33.768873, -84.392757)); blueCoordinates.Add(new Position(33.768914, -84.392129)); blueCoordinates.Add(new Position(33.769955, -84.392100)); blueCoordinates.Add(new Position(33.769956, -84.391723)); blueCoordinates.Add(new Position(33.770022, -84.391630)); blueCoordinates.Add(new Position(33.770132, -84.391643)); blueCoordinates.Add(new Position(33.770169, -84.392123)); blueCoordinates.Add(new Position(33.771282, -84.392072)); // add red positions redCoordinates.Add(new Position(33.771282, -84.392072)); redCoordinates.Add(new Position(33.776892, -84.392088)); redCoordinates.Add(new Position(33.776961, -84.395176)); redCoordinates.Add(new Position(33.778180, -84.396451)); redCoordinates.Add(new Position(33.778413, -84.401306)); redCoordinates.Add(new Position(33.779669, -84.402527)); redCoordinates.Add(new Position(33.779638, -84.406084)); redCoordinates.Add(new Position(33.778707, -84.406125)); redCoordinates.Add(new Position(33.778673, -84.404191)); redCoordinates.Add(new Position(33.777309, -84.404225)); redCoordinates.Add(new Position(33.777316, -84.402397));// 6th and ferst redCoordinates.Add(new Position(33.775246, -84.402564)); redCoordinates.Add(new Position(33.774685, -84.402288)); redCoordinates.Add(new Position(33.774595, -84.402528)); redCoordinates.Add(new Position(33.774375, -84.402450)); redCoordinates.Add(new Position(33.773929, -84.402063)); redCoordinates.Add(new Position(33.773688, -84.401366)); redCoordinates.Add(new Position(33.773141, -84.397929)); redCoordinates.Add(new Position(33.772972, -84.397483)); redCoordinates.Add(new Position(33.772405, -84.396655)); redCoordinates.Add(new Position(33.772355, -84.395508)); redCoordinates.Add(new Position(33.771389, -84.395540)); redCoordinates.Add(new Position(33.771307, -84.392058)); redCoordinates.Add(new Position(33.770163, -84.392197)); redCoordinates.Add(new Position(33.770164, -84.391692)); redCoordinates.Add(new Position(33.770104, -84.391631)); redCoordinates.Add(new Position(33.769981, -84.391650)); redCoordinates.Add(new Position(33.769950, -84.391740)); redCoordinates.Add(new Position(33.769961, -84.392126)); redCoordinates.Add(new Position(33.771282, -84.392072)); // add green positions greenCoordinates.Add(new Position(33.773033, -84.397003)); greenCoordinates.Add(new Position(33.773283, -84.397038)); greenCoordinates.Add(new Position(33.773312, -84.397156)); greenCoordinates.Add(new Position(33.773261, -84.397245)); greenCoordinates.Add(new Position(33.773154, -84.397244)); greenCoordinates.Add(new Position(33.773035, -84.397152)); greenCoordinates.Add(new Position(33.772973, -84.397050)); greenCoordinates.Add(new Position(33.772814, -84.397200)); greenCoordinates.Add(new Position(33.773175, -84.397883)); greenCoordinates.Add(new Position(33.773730, -84.401258)); greenCoordinates.Add(new Position(33.774334, -84.402381)); greenCoordinates.Add(new Position(33.774581, -84.402502)); greenCoordinates.Add(new Position(33.774689, -84.402284)); greenCoordinates.Add(new Position(33.775154, -84.402428)); greenCoordinates.Add(new Position(33.775272, -84.402586)); greenCoordinates.Add(new Position(33.777294, -84.402387)); greenCoordinates.Add(new Position(33.777984, -84.401980)); greenCoordinates.Add(new Position(33.778408, -84.401282)); greenCoordinates.Add(new Position(33.778471, -84.400236)); greenCoordinates.Add(new Position(33.778256, -84.399113)); greenCoordinates.Add(new Position(33.780563, -84.399115)); greenCoordinates.Add(new Position(33.781522, -84.399177)); greenCoordinates.Add(new Position(33.781586, -84.404166)); greenCoordinates.Add(new Position(33.784783, -84.406075)); greenCoordinates.Add(new Position(33.786210, -84.406042)); // 14th st greenCoordinates.Add(new Position(33.786188, -84.397254)); greenCoordinates.Add(new Position(33.786538, -84.393255)); greenCoordinates.Add(new Position(33.786537, -84.391980)); greenCoordinates.Add(new Position(33.781614, -84.391985)); greenCoordinates.Add(new Position(33.781551, -84.399202)); greenCoordinates.Add(new Position(33.778297, -84.399238)); greenCoordinates.Add(new Position(33.778490, -84.400610)); greenCoordinates.Add(new Position(33.778396, -84.401321)); greenCoordinates.Add(new Position(33.777904, -84.402060)); greenCoordinates.Add(new Position(33.777293, -84.402421)); greenCoordinates.Add(new Position(33.774896, -84.402622)); greenCoordinates.Add(new Position(33.774316, -84.402446)); greenCoordinates.Add(new Position(33.773904, -84.402016)); greenCoordinates.Add(new Position(33.773685, -84.401316)); greenCoordinates.Add(new Position(33.773193, -84.398039)); greenCoordinates.Add(new Position(33.772811, -84.397237)); greenCoordinates.Add(new Position(33.772793, -84.397195)); greenCoordinates.Add(new Position(33.773033, -84.397003)); PolylineOptions routeOptions = new PolylineOptions(); // route tracing, default to blue for now routeOptions.InvokeColor(0x3f75A2FF); //routeOptions.InvokeColor(0x33DD1D36); // red //routeOptions.InvokeColor(0x6600a86b); // green foreach (var position in redCoordinates) { routeOptions.Add(new LatLng(position.Latitude, position.Longitude)); } foreach (var position in greenCoordinates) { routeOptions.Add(new LatLng(position.Latitude, position.Longitude)); } NativeMap.AddPolyline(routeOptions); foreach (Bus bus in BusList.busList) { CircleOptions circleOptions = new CircleOptions(); circleOptions.InvokeCenter(new LatLng(bus.lat, bus.lng)); circleOptions.InvokeRadius(30); if (bus.route == "red") { circleOptions.InvokeFillColor(0X70F44242); } else if (bus.route == "blue") { circleOptions.InvokeFillColor(0X704141F4); } else if (bus.route == "green") { circleOptions.InvokeFillColor(0X7046F441); } else { circleOptions.InvokeFillColor(0X70000000); } circleOptions.InvokeStrokeColor(0X70FFFFFF); circleOptions.InvokeStrokeWidth(5); NativeMap.AddCircle(circleOptions); } }