GoogleDirectionLibrary

Google Direction API for Android

License

License

GroupId

GroupId

com.akexorcist
ArtifactId

ArtifactId

googledirectionlibrary
Last Version

Last Version

1.1.1
Release Date

Release Date

Type

Type

aar
Description

Description

GoogleDirectionLibrary
Google Direction API for Android
Project URL

Project URL

https://github.com/akexorcist/Android-GoogleDirectionLibrary
Source Code Management

Source Code Management

https://github.com/akexorcist/Android-GoogleDirectionLibrary

Download googledirectionlibrary

How to add to project

<!-- https://jarcasting.com/artifacts/com.akexorcist/googledirectionlibrary/ -->
<dependency>
    <groupId>com.akexorcist</groupId>
    <artifactId>googledirectionlibrary</artifactId>
    <version>1.1.1</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/com.akexorcist/googledirectionlibrary/
implementation 'com.akexorcist:googledirectionlibrary:1.1.1'
// https://jarcasting.com/artifacts/com.akexorcist/googledirectionlibrary/
implementation ("com.akexorcist:googledirectionlibrary:1.1.1")
'com.akexorcist:googledirectionlibrary:aar:1.1.1'
<dependency org="com.akexorcist" name="googledirectionlibrary" rev="1.1.1">
  <artifact name="googledirectionlibrary" type="aar" />
</dependency>
@Grapes(
@Grab(group='com.akexorcist', module='googledirectionlibrary', version='1.1.1')
)
libraryDependencies += "com.akexorcist" % "googledirectionlibrary" % "1.1.1"
[com.akexorcist/googledirectionlibrary "1.1.1"]

Dependencies

compile (5)

Group / Artifact Type Version
com.squareup.retrofit2 : retrofit jar 2.3.0
com.squareup.okhttp3 : logging-interceptor jar 3.9.0
com.squareup.retrofit2 : converter-gson jar 2.3.0
com.google.android.gms » play-services-maps jar 11.6.0
com.google.maps.android : android-maps-utils jar 0.5

Project Modules

There are no modules declared in this project.

Android Arsenal Download Minimum SDK Version Build Status

Android-GoogleDirectionLibrary

Google Direction Library

Google Maps Direction API helper for Android

Google Direction Library

Google Direction Library

Download

Maven

<dependency>
  <groupId>com.akexorcist</groupId>
  <artifactId>google-direction-library</artifactId>
  <version>1.2.1</version>
</dependency>

Gradle

implementation 'com.akexorcist:google-direction-library:1.2.1'

What's new in 1.2.1

• Update target and compile SDK version 30

• Add @StringDef to all parameters

• Add traffic model and transit routing preference parameters support

• Fix incorrect Romanian language value

What's new in 1.2.0

• Update minimum SDK version to 16

• Update target and compile SDK version 29

• Migrate to AndroidX

• Migrate the sample code to Kotlin

• Add total distance and duration calculation in route

• Remove raw string from success callback

• Add more customizable polyline in DirectionConverter

• Fix issue #70

Sample Code

Simple Direction Request

GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(LatLng(37.7681994, -122.444538))
        .to(LatLng(37.7749003,-122.4034934))
        .avoid(AvoidType.FERRIES)
        .avoid(AvoidType.HIGHWAYS)
        .execute(
            onDirectionSuccess = { direction: Direction? -> 
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }, 
            onDirectionFailure = { t: Throwable -> 
                // Do something
            }
        )

Multiple Waypoints Direction Request

GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(LatLng(41.8838111, -87.6657851))
        .and(LatLng(41.8766061, -87.6556908))
        .and(LatLng(41.8909056, -87.6467561))
        .to(LatLng(41.9007082, -87.6488802))
        .transportMode(TransportMode.DRIVING)
        .execute(
            onDirectionSuccess = { direction: Direction? -> 
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }, 
            onDirectionFailure = { t: Throwable -> 
                // Do something
            }
        )

or

val waypoints: List<LatLng> = listOf(
        LatLng(41.8766061, -87.6556908), 
        LatLng(41.8909056, -87.6467561)
)
GoogleDirection.withServerKey("YOUR_SERVER_API_KEY")
        .from(LatLng(41.8838111, -87.6657851))
        .and(waypoints)
        .to(LatLng(41.9007082, -87.6488802))
        .transportMode(TransportMode.DRIVING)
        .execute(
            onDirectionSuccess = { direction: Direction? -> 
                if(direction.isOK()) {
                    // Do something
                } else {
                    // Do something
                }
            }, 
            onDirectionFailure = { t: Throwable -> 
                // 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

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>;
}

-keep class com.akexorcist.googledirection.model.** { *;}

Special Thank

@jonaslins

@Will1229

Licence

Copyright 2020 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.

Versions

Version
1.1.1
1.1.0
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0