diff options
Diffstat (limited to 'Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs')
-rwxr-xr-x[-rw-r--r--] | Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs b/Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs index a18990d4..dbf93979 100644..100755 --- a/Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs +++ b/Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs @@ -1,25 +1,32 @@ using System.Collections.Generic; using System.Threading.Tasks; -using System; namespace Xamarin.Forms.Maps.Tizen { - public class Position {}; + internal class GeocoderBackend + { + public static void Register() + { + Geocoder.GetPositionsForAddressAsyncFunc = GetPositionsForAddressAsync; + Geocoder.GetAddressesForPositionFuncAsync = GetAddressesForPositionAsync; + } - internal class GeocoderBackend - { - public static void Register() - { - } + public static async Task<IEnumerable<Position>> GetPositionsForAddressAsync(string address) + { + var request = FormsMaps.MapService.CreateGeocodeRequest(address); + var positions = new List<Position>(); + foreach (var result in await request.GetResponseAsync()) + positions.Add(new Position(result.Latitude, result.Longitude)); + return positions; + } - public static async Task<IEnumerable<Position>> GetPositionsForAddressAsync(string address) - { - return new Position[]{}; - } - - public static async Task<IEnumerable<string>> GetAddressesForPositionAsync(Position position) - { - return new String[]{"Not supported"}; - } - } + public static async Task<IEnumerable<string>> GetAddressesForPositionAsync(Position position) + { + var request = FormsMaps.MapService.CreateReverseGeocodeRequest(position.Latitude, position.Longitude); + var addresses = new List<string>(); + foreach (var result in await request.GetResponseAsync()) + addresses.Add(result.Freetext); + return addresses; + } + } }
\ No newline at end of file |