Android-GoogleDirectionAndPlaceLibrary

Additional

Language
Java
Version
1.1.1 (Dec 31, 2017)
Created
Nov 30, 2015
Updated
Sep 15, 2018
Owner
Akexorcist (akexorcist)
Contributors
Akexorcist (akexorcist)
Will1229
2
Activity
Badge
Generate
Download
Source code
APK file

Advertising

Android-GoogleDirectionLibrary

Android library for Google Maps Direction API for using with Google Maps for Android

Sample Code

Simple Direction Request

GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(new LatLng(37.7681994, -122.444538))
        .to(new LatLng(37.7749003,-122.4034934))
        .avoid(AvoidType.FERRIES)
        .avoid(AvoidType.HIGHWAYS)
        .execute(new DirectionCallback() {
            @Override
            public void onDirectionSuccess(Direction direction, String rawBody) {
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }

            @Override
            public void onDirectionFailure(Throwable t) {
                // Do something
            }
        });

Multiple Waypoints Direction Request

GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(new LatLng(41.8838111, -87.6657851))
        .and(new LatLng(41.8766061, -87.6556908))
        .and(new LatLng(41.8909056, -87.6467561))
        .to(new LatLng(41.9007082, -87.6488802))
        .transportMode(TransportMode.DRIVING)
        .execute(new DirectionCallback() {
            @Override
            public void onDirectionSuccess(Direction direction, String rawBody) {
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }

            @Override
            public void onDirectionFailure(Throwable t) {
                // Do something
            }
        });

or

List<LatLng> waypoints = Arrays.asList(
        new LatLng(41.8766061, -87.6556908), 
        new LatLng(41.8909056, -87.6467561)
)
GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(new LatLng(41.8838111, -87.6657851))
        .and(waypoints)
        .to(new LatLng(41.9007082, -87.6488802))
        .transportMode(TransportMode.DRIVING)
        .execute(new DirectionCallback() {
            @Override
            public void onDirectionSuccess(Direction direction, String rawBody) {
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }

            @Override
            public void onDirectionFailure(Throwable t) {
                // Do something
            }
        });

See example code for more detail

To get API key, please read Get Google Maps Direction API Key

Demo

Try it at Google Play

Download

Maven

<dependency>
  <groupId>com.akexorcist</groupId>
  <artifactId>googledirectionlibrary</artifactId>
  <version>1.1.1</version>
</dependency>

Gradle

implementation 'com.akexorcist:googledirectionlibrary:1.1.1'

Usage Documentation

English Version : http://www.akexorcist.com/2015/12/google-direction-library-for-android-en.html

Thai Version : http://www.akexorcist.com/2015/12/google-direction-library-for-android-th.html

ProGuard

-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.* { *; }

-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

Special Thank

@jonaslins

@Will1229

Licence

Copyright 2017 Akexorcist

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.