private async void GetNavigationRoutesPoiToPoi(string poi_from, string poi_to, GeoCoordinate floorPoiLocation)
{
try
{
var isNetwork = NetworkInterface.GetIsNetworkAvailable();
if (isNetwork)
{
if (!poi_from.Equals(poi_to))
_routePoi = await CustomPushpinWp8APIClient.GetPoiToPoiRoute(poi_from, poi_to);
}
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;
}
_getIndoornav = true;
_selectedFloor = _floorPoiFromNumber;
Dispatcher.BeginInvoke(() =>
{
txt_cur.Text = _selectedFloor;
});
ChangeFloor();
if (!poi_from.Equals(poi_to))
GetRouteOfTheCurrentFloor();
// 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);
}
var g = new GeoCoordinate();
// set phone current location
if (!_externalSource)
{
g.Latitude = _myLatitude;
g.Longitude = _myLongitude;
}
else
{
g.Latitude = _externalCoordinates.Latitude;
g.Longitude = _externalCoordinates.Longitude;
}
GetRoute.Add(g);
_mygeocodequery = new GeocodeQuery
{
SearchTerm = floorPoiLocation.ToString(),
GeoCoordinate = g
};
_mygeocodequery.QueryCompleted += MygeocodequeryPoiSearch_QueryCompleted;
_mygeocodequery.QueryAsync();
}
catch
{
directions_grid.Visibility = Visibility.Collapsed;
stackpanelClose();
MoveViewWindow(30);
if (directions_grid.Visibility != Visibility.Visible)
ApplicationBar.IsVisible = true;
if (_routePoi.message.Contains("same"))
MessageBox.Show(_routePoi.message);
else
MessageBox.Show("Can not get navigation route inside building. Please check your internet connection!");
}
}