renaudcerrato / static-maps-api

Fluent and clean Google Static Maps API Java interface.
Apache License 2.0
165 stars 21 forks source link

Google Static Maps API Android Arsenal

Fluent and clean Java interface for Google Static Maps API.

DEMO APK

Why?

Because using Google Play Services to show a Google Map may be overkill, or simply because Google Play Services are not available (Amazon, I'm looking at you!).

How?

Most of the official API is available under a fluent java interface. You'll find below some example usage, for more details, see the official documentation or look at the demo source.

Basic usage

StaticMap map = new StaticMap().center("NYC").size(320, 240);
load(map.toURL()); // load into your image view

Map Type

new StaticMap().center("NYC").type(HYBRID).size(320, 240);

Markers

Custom colors

 new StaticMap()
    .size(320, 240)
    .marker(Style.BLUE, new GeoPoint("Tour Eiffel"))
    .marker(Style.RED, new GeoPoint("Cathédrale Notre Dame"))
    .marker(Style.GREEN, new GeoPoint("Sacré-Coeur, 75018"))
    .marker(Style.ORANGE, new GeoPoint("Musée du Louvre"))
    .marker(Style.PURPLE, new GeoPoint("Arc de Triomphe"));

Custom icons

new StaticMap()
    .size(320, 240)
    .marker(Style.builder().icon(ICON_URL_GHOSTBUSTER).build(), new GeoPoint(40.7195532,-74.0067987))
    .marker(Style.RED.toBuilder().label('A').build(), new GeoPoint(40.7529234,-73.9827515))
    .marker(Style.GREEN.toBuilder().label('B').build(), new GeoPoint("Columbia University, NYC"));

Path

Line

new StaticMap()
    .size(320, 240)
    .path(Path.Style.builder().color(BLUE).build(),
          new GeoPoint(40.737102,-73.990318),
          new GeoPoint(40.749825,-73.987963),
          new GeoPoint(40.752946,-73.987384),
          new GeoPoint(40.755823,-73.986397));

Filled

new StaticMap()
    .size(320, 240)
    .path(Path.Style.builder().color(Color.TRANSPARENT).fill(0x66ff0000).build(),
          new GeoPoint("Miami, Florida"),
          new GeoPoint("San Juan, Puerto Rico"),
          new GeoPoint("Bermuda Island"));

Install

This repository can be found on JitPack:

https://jitpack.io/#renaudcerrato/static-maps-api

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Add the dependency:

dependencies {
    compile 'com.github.renaudcerrato:static-maps-api:1.0.4'
}

Or you can simply download the jars: