Last active
February 7, 2020 17:44
-
-
Save MalteKiefer/556b2181f6e30ad536468c005ef55104 to your computer and use it in GitHub Desktop.
locInfo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:geolocator/geolocator.dart'; | |
class HomePage extends StatefulWidget { | |
@override | |
_HomePageState createState() => _HomePageState(); | |
} | |
class _HomePageState extends State<HomePage> { | |
final Geolocator geolocator = Geolocator()..forceAndroidLocationManager; | |
Position _currentPosition; | |
// String _currentAddress; | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
title: Text("LocInfo"), | |
), | |
body: ListView( | |
children: [ | |
//_getCurrentLocation(), | |
locSection, | |
addressSection, | |
timeSection, | |
], | |
), | |
); | |
} | |
Widget locSection = Container( | |
padding: const EdgeInsets.all(32), | |
child: Row( | |
children: [ | |
Expanded( | |
/*1*/ | |
child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: [ | |
/*2*/ | |
Container( | |
padding: const EdgeInsets.only(bottom: 8), | |
child: Text( | |
'Location (LAT/LNG)', | |
style: TextStyle( | |
fontWeight: FontWeight.bold, | |
), | |
), | |
), | |
if (_currentPosition != null) | |
Text( | |
"LAT: ${_currentPosition.latitude}, LNG: ${_currentPosition.longitude}", | |
style: TextStyle( | |
color: Colors.grey[500], | |
), | |
), | |
], | |
), | |
), | |
/*3*/ | |
Icon( | |
Icons.near_me, | |
), | |
], | |
), | |
); | |
Widget addressSection = Container( | |
padding: const EdgeInsets.all(32), | |
child: Row( | |
children: [ | |
Expanded( | |
/*1*/ | |
child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: [ | |
/*2*/ | |
Container( | |
padding: const EdgeInsets.only(bottom: 8), | |
child: Text( | |
'Current address', | |
style: TextStyle( | |
fontWeight: FontWeight.bold, | |
), | |
), | |
), | |
Text( | |
"Test", | |
style: TextStyle( | |
color: Colors.grey[500], | |
), | |
), | |
], | |
), | |
), | |
/*3*/ | |
Icon( | |
Icons.home, | |
), | |
], | |
), | |
); | |
Widget timeSection = Container( | |
padding: const EdgeInsets.all(32), | |
child: Row( | |
children: [ | |
Expanded( | |
/*1*/ | |
child: Column( | |
crossAxisAlignment: CrossAxisAlignment.start, | |
children: [ | |
/*2*/ | |
Container( | |
padding: const EdgeInsets.only(bottom: 8), | |
child: Text( | |
'Current time (ZULU / UTC)', | |
style: TextStyle( | |
fontWeight: FontWeight.bold, | |
), | |
), | |
), | |
Text( | |
DateTime.now().toUtc().toString(), | |
style: TextStyle( | |
color: Colors.grey[500], | |
), | |
), | |
], | |
), | |
), | |
/*3*/ | |
Icon( | |
Icons.access_time, | |
), | |
], | |
), | |
); | |
_getCurrentLocation() { | |
final Geolocator geolocator = Geolocator()..forceAndroidLocationManager; | |
geolocator | |
.getCurrentPosition(desiredAccuracy: LocationAccuracy.best) | |
.then((Position position) { | |
setState(() { | |
_currentPosition = position; | |
}); | |
_getAddressFromLatLng(); | |
}).catchError((e) { | |
print(e); | |
}); | |
} | |
_getAddressFromLatLng() async { | |
try { | |
List<Placemark> p = await geolocator.placemarkFromCoordinates( | |
_currentPosition.latitude, _currentPosition.longitude); | |
Placemark place = p[0]; | |
setState(() { | |
_currentAddress = | |
"${place.locality}, ${place.postalCode}, ${place.country}"; | |
}); | |
} catch (e) { | |
print(e); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'home_page.dart'; | |
void main() => runApp(MyApp()); | |
class MyApp extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
title: 'LocInfo', | |
theme: ThemeData( | |
primarySwatch: Colors.blue, | |
), | |
home: HomePage(), | |
); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment