MCPcopy Index your code
hub / github.com/akexorcist/GoogleDirectionLibrary

github.com/akexorcist/GoogleDirectionLibrary @1.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.1 ↗ · + Follow
433 symbols 619 edges 49 files 80 documented · 18% updated 5y ago1.1.1 · 2017-12-31★ 5765 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Android Arsenal Build Status Download

Android-GoogleDirectionLibrary

Google Direction Library

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

Google Direction Library

Google Direction Library

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(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) {
                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) {
                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) {
                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>google-direction-library</artifactId>
  <version>1.2.0</version>
</dependency>

Gradle

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

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 2019 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.

Extension points exported contracts — how you extend this code

DirectionCallback (Interface)
Interface for the response from the direction request of the Google Direction API. @since 1.0.0 [4 implementers]
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/DirectionCallback.java
DirectionService (Interface)
For internal use.
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/network/DirectionService.java

Core symbols most depended-on inside this repo

getInstance
called by 5
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/network/DirectionConnection.java
withServerKey
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/GoogleDirection.java
to
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionDestinationRequest.java
from
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionOriginRequest.java
transportMode
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionRequest.java
execute
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionRequest.java
getCoordination
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Coordination.java
createPolyline
called by 4
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/util/DirectionConverter.java

Shape

Method 380
Class 48
Function 3
Interface 2

Languages

Java91%
Kotlin9%

Modules by API surface

googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/util/DirectionConverter.java47 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionRequestParam.java34 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Step.java27 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Leg.java25 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Route.java24 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/TransitDetail.java20 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Line.java18 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/request/DirectionRequest.java16 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Direction.java15 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Waypoint.java12 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/Vehicle.java12 symbols
googleDirectionLibrary/src/main/java/com/akexorcist/googledirection/model/TimeInfo.java12 symbols

For agents

$ claude mcp add GoogleDirectionLibrary \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact