/*
* Copyright (c) 2015 Daimler AG / Moovel GmbH
*
* All rights reserved
*/
package com.car2go.maps.google.adapter;
import com.car2go.maps.model.Circle;
import com.car2go.maps.model.CircleOptions;
import com.car2go.maps.model.Marker;
import com.car2go.maps.model.MarkerOptions;
import com.car2go.maps.model.Polygon;
import com.car2go.maps.model.PolygonOptions;
import com.car2go.maps.model.Polyline;
import com.car2go.maps.model.PolylineOptions;
import com.google.android.gms.maps.GoogleMap;
/**
* Factory of {@link com.car2go.maps.model.DrawableComponent}. Created components are bound
* to associated {@link GoogleMap}
*/
class DrawableComponentFactory {
private final GoogleMap map;
public DrawableComponentFactory(GoogleMap map) {
this.map = map;
}
/**
* Adds marker to the map
*
* @return added {@link Marker} which is bound to the map.
*/
public Marker addMarker(MarkerOptions options) {
com.google.android.gms.maps.model.MarkerOptions googleOptions = AnyMapAdapter.adapt(options);
com.google.android.gms.maps.model.Marker marker = map.addMarker(googleOptions);
return AnyMapAdapter.adapt(marker);
}
/**
* Adds circle to the map
*
* @return added {@link Circle} which is bound to the map.
*/
public Circle addCircle(CircleOptions options) {
com.google.android.gms.maps.model.CircleOptions googleOptions = AnyMapAdapter.adapt(options);
com.google.android.gms.maps.model.Circle circle = map.addCircle(googleOptions);
return AnyMapAdapter.adapt(circle);
}
/**
* Adds polygon to the map.
*
* @return added {@link Polygon} which is bound to the map
*/
public Polygon addPolygon(PolygonOptions options) {
com.google.android.gms.maps.model.PolygonOptions googleOptions = AnyMapAdapter.adapt(options);
com.google.android.gms.maps.model.Polygon polygon = map.addPolygon(googleOptions);
return AnyMapAdapter.adapt(polygon);
}
/**
* Adds polyline to the map.
*
* @return added {@link Polyline} which is bound to the map
*/
public Polyline addPolyline(PolylineOptions options) {
com.google.android.gms.maps.model.PolylineOptions googleOptions = AnyMapAdapter.adapt(options);
com.google.android.gms.maps.model.Polyline polyline = map.addPolyline(googleOptions);
return AnyMapAdapter.adapt(polyline);
}
}