コード例 #1
0
        public async void MyPositionClicked(object sender, EventArgs e)
        {
            try
            {
                var pos = VM.CurrentLocation;

                var update = CameraUpdateFactory.NewPosition(new Position(pos.Latitude, pos.Longitude));

                await TheMap.AnimateCamera(update, TimeSpan.FromMilliseconds(200));
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
            }
        }
コード例 #2
0
        private async void LocationsChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            var newItems = new List <Location>();

            if (e.NewItems?.Count > 0)
            {
                foreach (var item in e.NewItems)
                {
                    var loc = item as Location;
                    newItems.Add(loc);
                }

                var minLat = Vm.Locations.OrderBy(x => x.Latitude).FirstOrDefault().Latitude;
                var maxLat = Vm.Locations.OrderByDescending(x => x.Latitude).FirstOrDefault().Latitude;
                var minLon = Vm.Locations.OrderBy(x => x.Longitude).FirstOrDefault().Longitude;
                var maxLon = Vm.Locations.OrderByDescending(x => x.Longitude).FirstOrDefault().Longitude;
                var update = Xamarin.Forms.GoogleMaps.CameraUpdateFactory.NewBounds(new Xamarin.Forms.GoogleMaps.Bounds(new Xamarin.Forms.GoogleMaps.Position(minLat, minLon), new Xamarin.Forms.GoogleMaps.Position(maxLat, maxLon)), 50);
                await TheMap.AnimateCamera(update, TimeSpan.FromMilliseconds(100));
            }
        }