Exemplo n.º 1
0
        public override async Task Load()
        {
            CameraTarget = _locationManager.LastKnownLocation;
            await CameraLocationChanged(CameraTarget);

            CameraStartMoving.Subscribe(_ => IsSearching = true);

            CameraPositionChanged.SelectMany(l => _geocodingProvider.ReverseGeocodingFromLocation(l))
            .Subscribe(address =>
            {
                SearchText      = address.FormattedAddress;
                _currentAddress = address;
                IsSearching     = false;
            }, ex =>
            {
                Debug.Write(ex);
                IsSearching = false;
            });
        }
        private async Task CameraLocationChanged(Location location)
        {
            var address = await _geocodingProvider.ReverseGeocodingFromLocation(location);

            if (address != null)
            {
                SearchText      = address.FormattedAddress;
                _currentAddress = new Address
                {
                    FormattedAddress = address.FormattedAddress,
                    Location         = location
                };
            }
            IsSearching = false;
        }
        public override Task Load()
        {
            CameraStartMoving
            .Do(_ => IsSearching = true)
            .Subscribe();

            CameraPositionChanged
            .ObserveOn(_schedulerProvider.DefaultScheduler)
            .Do(async location =>
            {
                var address     = await _geocodingProvider.ReverseGeocodingFromLocation(location);
                SearchText      = address.FormattedAddress;
                _currentAddress = address;

                IsSearching = false;
            }).Subscribe();

            return(base.Load());
        }
        public override Task Load()
        {
            CameraStartMoving.Subscribe(_ => IsSearching = true);

            CameraPositionChanged.SelectMany(l => _geocodingProvider.ReverseGeocodingFromLocation(l))
            .ObserveOn(_schedulerProvider.DefaultScheduler)
            .Subscribe(address =>
            {
                SearchText      = address.FormattedAddress;
                _currentAddress = address;
                IsSearching     = false;
            }, ex =>
            {
                Debug.WriteLine(ex);
                IsSearching = false;
            });

            return(base.Load());
        }