private async void GetNavigationRoutesBuilding(string buid, string puid, string floorNumber, string lat, string lon)
{
try
{
if (gd_result.Visibility == Visibility.Visible)
gd_result.Visibility = Visibility.Collapsed;
if (Mymap.Layers.Contains(indoorLayer))
Mymap.Layers.Remove(indoorLayer);
if (Mymap.Layers.Contains(floorPoisDetail))
{
Mymap.Layers.Remove(floorPoisDetail);
floorPoisDetail.Clear();
}
Mymap.Layers.Remove(mapHoldLayer);
ApplicationBar.IsVisible = false;
MoveViewWindow(-70);
stackpanelOpen();
directions_grid.Visibility = Visibility.Visible;
calcProgrBar.Visibility = Visibility.Visible;
time.Visibility = Visibility.Collapsed;
distance.Visibility = Visibility.Collapsed;
calcProgrBar.IsIndeterminate = true;
RouteLocationToPoi x;
var isNetwork = NetworkInterface.GetIsNetworkAvailable();
if (isNetwork)
x = await CustomPushpinWp8APIClient.GetLocationToPoiRoute(buid, puid, floorNumber, lat, lon);
else
{
MessageBox.Show("No internet connection found. Check your internet connection and try again!");
directions_grid.Visibility = Visibility.Collapsed;
stackpanelClose();
MoveViewWindow(30);
ApplicationBar.IsVisible = true;
return;
}
_polyline = new MapPolyline { StrokeColor = Colors.Blue, StrokeThickness = 5 };
foreach (var obj in x.pois)
{
_polyline.Path.Add(new GeoCoordinate(double.Parse(obj.lat, CultureInfo.InvariantCulture), double.Parse(obj.lon, CultureInfo.InvariantCulture)));
}
// clear route details
if (Mymap.Layers.Contains(routedetails_layer))
Mymap.Layers.Remove(routedetails_layer);
// clear directions
if (GetRoute.Count != 0)
{
GetRoute.Clear();
if (_myMapRoute != null)
Mymap.RemoveRoute(_myMapRoute);
}
// na dixnei ta results
IndoorNavigationRoutesLocationToPoi();
Mymap.MapElements.Add(_polyline);
}
catch
{
directions_grid.Visibility = Visibility.Collapsed;
stackpanelClose();
MoveViewWindow(30);
ApplicationBar.IsVisible = true;
MessageBox.Show("Can not get navigation route inside building. Please check your internet connection!");
}
}