diff --git a/lib/main.dart b/lib/main.dart
index ced47616b66743b376a334036dc95de846b5c057..78136d0f88bf96b7cb41c0db5456a3528f4139d6 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -8,6 +8,7 @@ import 'widgets/returnDestination.dart';
 import 'package:geocoding/geocoding.dart';
 import 'package:geolocator/geolocator.dart';
 import 'package:http/http.dart' as http;
+import 'dart:async';
 import 'dart:convert';
 import 'package:weather_icons/weather_icons.dart';
 import 'config/config.dart';
@@ -90,6 +91,7 @@ class _MyHomePageState extends State<MyHomePage> {
   // Weather API
   var _forecastList = [];
   bool _isCollapsed = false;
+  bool _isLoading = false;
 
   // Format input text.
   String getFormattedText(String inputText) {
@@ -164,9 +166,16 @@ class _MyHomePageState extends State<MyHomePage> {
   // -----------Section For Map Operations, Coords, Polyline..----------------
   // Get shortest path.
   void _getShortestPath() async {
-    _getWeather();
     _resetPolyline();
-    _getDirections();
+
+    _isLoading = true;
+
+    await Future.wait<void>([
+      _getWeather(),
+      _getDirections(),
+    ]);
+
+    _isLoading = false;
   }
 
   // Add markers for origin/dest coords.
@@ -206,8 +215,23 @@ class _MyHomePageState extends State<MyHomePage> {
     });
   }
 
+  void _showMessage(String string, BuildContext context) {
+    showDialog<String>(
+      context: context,
+      builder: (BuildContext context) => AlertDialog(
+        content: Text(string),
+        actions: <Widget>[
+          TextButton(
+            onPressed: () => Navigator.pop(context, 'OK'),
+            child: const Text('OK'),
+          ),
+        ],
+      ),
+    );
+  }
+
   // Get coords between origin/dest points corresponding to shortest path.
-  void _getDirections() async {
+  Future<void> _getDirections() async {
     _resetPolyline();
     try {
       var originlat = _originCoordinates.latitude;
@@ -228,6 +252,18 @@ class _MyHomePageState extends State<MyHomePage> {
           }),
           headers: <String, String>{"Content-Type": "application/json"});
       _data = jsonDecode(response.body);
+
+      if (_data.containsKey('error_code') && _data['error_code'] != 0) {
+        switch(_data['error_code']) {
+        case 1:
+          _showMessage('The address is outside the solution space. Please enter an address within Berlin-Brandenburg.', context);
+          return;
+        case 2:
+          _showMessage('The address could not be found.', context);
+          return;
+        }
+      }
+
       var coordinates = _data['route'];
       int duration = _data['duration'];
       int distance = _data['distance'];
@@ -655,7 +691,7 @@ class _MyHomePageState extends State<MyHomePage> {
 
   // ----------Section For Getting Weather Data------------
   // Create weather query to the external weather API
-  void _getWeather() async {
+  Future<void> _getWeather() async {
     _forecastList = [];
     setState(() {
       _forecastList;
@@ -997,7 +1033,7 @@ class _MyHomePageState extends State<MyHomePage> {
                   itemBuilder: (BuildContext context, int index) {
                     return Stack(
                       children: [
-                        Column(
+                        _isLoading ? Center(child: const CircularProgressIndicator()) : Column(
                           children: [
                             Container(
                               margin: EdgeInsets.only(bottom: 15, top: 5),