All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions Maven / Gradle / Ivy

There is a newer version: 9.2.1
Show newest version
package com.mapbox.mapboxsdk.annotations;

import android.os.Parcelable;
import android.support.annotation.FloatRange;
import android.support.annotation.NonNull;

import com.mapbox.mapboxsdk.geometry.LatLng;

/**
 * Abstract builder class for composing custom MarkerView objects.
 * 

* Extending this class requires implementing Parceable interface. *

* * @param Type of the marker view to be composed * @param Type of the builder to be used for composing */ public abstract class BaseMarkerViewOptions> implements Parcelable { protected LatLng position; protected String snippet; protected String title; protected Icon icon; protected boolean flat; protected float anchorU = 0.5f; protected float anchorV = 1f; protected float infoWindowAnchorU = 0.5f; protected float infoWindowAnchorV = 0.0f; protected float rotation; protected boolean visible = true; protected boolean selected; protected float alpha = 1.0f; /** * Default constructor */ public BaseMarkerViewOptions() { } /** * Set the geographical location of the MarkerView. * * @param position the location to position the MarkerView * @return the object for which the method was called */ public T position(@NonNull LatLng position) { this.position = position; return getThis(); } /** * Set the snippet of the MarkerView. * * @param snippet the snippet of the MarkerView * @return the object for which the method was called */ public T snippet(String snippet) { this.snippet = snippet; return getThis(); } /** * Set the title of the MarkerView. * * @param title the title of the MarkerView * @return the object for which the method was called */ public T title(String title) { this.title = title; return getThis(); } /** * Set the icon of the MarkerView. * * @param icon the icon of the MarkerView * @return the object for which the method was called */ public T icon(Icon icon) { this.icon = icon; return getThis(); } /** * Set the flat state of the MarkerView. * * @param flat the flat state of the MarkerView * @return the object for which the method was called */ public T flat(boolean flat) { this.flat = flat; return getThis(); } /** * Set the anchor of the MarkerView. * * @param u the u-value * @param v the v-value * @return the object for which the method was called */ public T anchor(@FloatRange(from = 0.0, to = 1.0) float u, @FloatRange(from = 0.0, to = 1.0) float v) { this.anchorU = u; this.anchorV = v; return getThis(); } /** * Set the InfoWindow anchor of the MarkerView. * * @param u the u-value * @param v the v-values * @return the object for which the method was called */ public T infoWindowAnchor(@FloatRange(from = 0.0, to = 1.0) float u, @FloatRange(from = 0.0, to = 1.0) float v) { this.infoWindowAnchorU = u; this.infoWindowAnchorV = v; return getThis(); } /** * Set the rotation of the MarkerView. * * @param rotation the rotation value * @return the object for which the method was called */ public T rotation(float rotation) { this.rotation = rotation; while (this.rotation > 360) { this.rotation -= 360; } while (this.rotation < 0) { this.rotation += 360; } return getThis(); } /** * Set the visibility state of the MarkerView. * * @param visible the visible state * @return the object for which the method was called */ public T visible(boolean visible) { this.visible = visible; return getThis(); } /** * Set the alpha of the MarkerView. * * @param alpha the alpha value * @return the object for which the method was called */ public T alpha(float alpha) { this.alpha = alpha; return getThis(); } /** * Get the geographical location of the MarkerView. * * @return the geographical location */ public LatLng getPosition() { return position; } /** * Get the snippet of the MarkerView. * * @return the snippet */ public String getSnippet() { return snippet; } /** * Get the title of the MarkerView. * * @return the title */ public String getTitle() { return title; } /** * Get the icon of the MarkerView. * * @return the icon */ public Icon getIcon() { return icon; } /** * Get the flat state of the MarkerView. * * @return the flat state */ public boolean isFlat() { return flat; } /** * Get the u-value of the MarkerView anchor. * * @return the u-value */ public float getAnchorU() { return anchorU; } /** * Get the v-value of the MarkerView anchor. * * @return the v-value */ public float getAnchorV() { return anchorV; } /** * Get the u-value of the MarkerView InfoWindow anchor. * * @return the u-value */ public float getInfoWindowAnchorU() { return infoWindowAnchorU; } /** * Get the v-value of the MarkerView InfoWindow anchor. * * @return the v-value */ public float getInfoWindowAnchorV() { return infoWindowAnchorV; } /** * Get the rotation of the MarkerView. * * @return the rotation value */ public float getRotation() { return rotation; } /** * Get the visibility state of the MarkerView. * * @return the visibility state */ public boolean isVisible() { return visible; } /** * Get the alpha of the MarkerView. * * @return the alpha value */ public float getAlpha() { return alpha; } /** * Get the instance of the object for which this method was called. * * @return the object for which the this method was called */ public abstract T getThis(); /** * Get the MarkerView. * * @return the MarkerView created from this builder */ public abstract U getMarker(); }