location_picker 0.0.15

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • new49

location_picker

A location picker plugin for Flutter.

What it does

As the name implies, this is a component for getting a desired location from the user. It handles location permissions requests, a native map view and it return a map with all the data. It also uses reversed GeoCoding for info associated with the selected location.

<img src="https://raw.githubusercontent.com/touwolf/location_picker/master/android.jpg" width="300"> <img src="https://raw.githubusercontent.com/touwolf/location_picker/master/ios.jpeg" width="300">

Example

        //NECESSARY
        LocationPicker.initApiKey('YOUR API KEY');
        
        LocationPicker picker = new LocationPicker();
        
        try 
        {
          result = await picker.showLocationPicker;
        } 
          on PlatformException 
        {
          //HANDLE ERROR
        }
        
        setState(() {_locationPickerData = result.toString();});

Configuration

The constructor

new LocationPicker();

Takes the following optional parameters for configuration:

      String titleText;
      bool closeIfLocationDenied;
      bool useGeoCoder;
      double initialLat;
      double initialLong;
      bool enableMyLocation;
    
      //ANDROID ONLY
      String androidAppBarColor;
      String androidNavBarColor;
      String androidStatusBarColor;
      String androidSelectButtonColor;
      String androidTitleAndBackButtonColor;
    
      //IOS ONLY
      String iosBackButtonText;
      String iosSelectButtonText;

Response

The response is a Map<dynamic,dynamic> that contains the following fields that can be null:

                             ["latitude"] double
                             ["longitude"] double
                             ["administrativeArea"] String
                             ["country"] String
                             ["locality"] String
                             ["subLocality"] String
                             ["postalCode"] String
                             ["thoroughfare"] String
                             ["line0"] String
                             ["line1"] String

Importing

  1. Create a Flutter project with Swift support.

  2. Import the library

Installing

  1. Get your Google Maps Api Key.

Android

  1. Request permissions in your manifest

     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
  2. Add your Android API Key in your manifest inside the application tag

     <meta-data
      android:name="com.google.android.geo.API_KEY"
      android:value="YOUR API KEY"/>
    
  3. Add the map Activity to your app's manifest

    <activity
         android:name="com.jumpstart.locationpicker.LocationPickerActivity"
         android:screenOrientation="portrait"
         android:theme="@style/Base.Theme.AppCompat.Light.DarkActionBar">
     </activity>
    

IOS

  1. Request permissions in your project's info.plist

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Your message to the user</string>
      	```
    

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

[0.0.1] - TODO: Add release date.

  • TODO: Describe initial release.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:location_picker/location_picker.dart';

void main() => runApp(new MyApp());

class MyApp extends StatefulWidget {

  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> {

  String _platformVersion = 'Unknown';
  String _locationPickerData = 'locationPicker';

  Map<dynamic, dynamic> result = new Map();
  @override
  initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  initPlatformState() async {
    LocationPicker.initApiKey('YOUR API KEY');
    LocationPicker picker = new LocationPicker();
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      result = await picker.showLocationPicker;
    } on PlatformException {
    }
    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted)
      return;

    setState(() {
    _locationPickerData = result.toString();
    });
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Plugin example app'),
        ),
        body: new Center(
          child: new Text(_locationPickerData),
        ),
      ),
    );
  }
}

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  location_picker: "^0.0.15"

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter packages get

Alternatively, your editor might support packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:location_picker/location_picker.dart';
        
Version Uploaded Documentation Archive
0.0.15 Apr 16, 2018 Go to the documentation of location_picker 0.0.15 Download location_picker 0.0.15 archive
0.0.14 Apr 10, 2018 Go to the documentation of location_picker 0.0.14 Download location_picker 0.0.14 archive
0.0.12 Apr 10, 2018 Go to the documentation of location_picker 0.0.12 Download location_picker 0.0.12 archive
0.0.11 Apr 10, 2018 Go to the documentation of location_picker 0.0.11 Download location_picker 0.0.11 archive
0.0.1 Apr 10, 2018 Go to the documentation of location_picker 0.0.1 Download location_picker 0.0.1 archive

Analysis

We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.49.0
  • pana: 0.10.6
  • Flutter: 0.3.2

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
0 / 100
Health:
Code health derived from static analysis. [more]
98 / 100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100 / 100
Overall score:
Weighted score of the above. [more]
49
Learn more about scoring.

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Suggestions

  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 1 hint.

    Run flutter format to format lib/location_picker.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.9.0 <2.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.6 1.14.9
meta 1.1.2
sky_engine 0.0.99
typed_data 1.1.5
vector_math 2.0.6