summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs')
-rwxr-xr-x[-rw-r--r--]Xamarin.Forms.Maps.Tizen/GeocoderBackend.cs41
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