/*
* Copyright (c) 2015 Daimler AG / Moovel GmbH
*
* All rights reserved
*/
package com.car2go.maps.baidu.model;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.Stroke;
import com.car2go.maps.model.BitmapDescriptor;
import com.car2go.maps.model.CircleOptions;
import com.car2go.maps.model.LatLng;
import com.car2go.maps.model.LatLngBounds;
import com.car2go.maps.model.MarkerOptions;
import com.car2go.maps.model.PolygonOptions;
import com.car2go.maps.model.PolylineOptions;
import java.util.ArrayList;
import java.util.List;
/**
* Converts model objects to baidu objects.
*/
public final class ModelToBaiduConverter {
private ModelToBaiduConverter() {
}
public static com.baidu.mapapi.model.LatLng convert(com.car2go.maps.model.LatLng position) {
if (position == null) {
return null;
}
return new com.baidu.mapapi.model.LatLng(position.latitude, position.longitude);
}
public static OverlayOptions convert(MarkerOptions options) {
return new com.baidu.mapapi.map.MarkerOptions()
.icon(convert(options.getIcon()))
.position(ModelToBaiduConverter.convert(options.getPosition()))
.anchor(options.getAnchorU(), options.getAnchorV())
.visible(options.isVisible())
.zIndex((int) options.getZ());
}
public static com.baidu.mapapi.map.BitmapDescriptor convert(BitmapDescriptor bitmapDescriptor) {
return ((BaiduBitmapDescriptor) bitmapDescriptor).wrappedDescriptor;
}
public static com.baidu.mapapi.model.LatLngBounds convert(LatLngBounds bounds) {
if (bounds == null) {
return null;
}
return new com.baidu.mapapi.model.LatLngBounds.Builder()
.include(convert(bounds.northeast))
.include(convert(bounds.southwest))
.build();
}
public static OverlayOptions convert(CircleOptions options) {
return new com.baidu.mapapi.map.CircleOptions()
.center(convert(options.getCenter()))
.fillColor(options.getFillColor())
.radius((int) Math.round(options.getRadius()))
.stroke(new Stroke(Math.round(options.getStrokeWidth()), options.getStrokeColor()));
}
public static OverlayOptions convert(PolylineOptions options) {
return new com.baidu.mapapi.map.PolylineOptions()
.color(options.getColor())
.width(Math.round(options.getWidth()))
.points(convert(options.getPoints()));
}
public static List<com.baidu.mapapi.model.LatLng> convert(List<LatLng> points) {
List<com.baidu.mapapi.model.LatLng> converted = new ArrayList<>(points.size());
for (LatLng point : points) {
converted.add(convert(point));
}
return converted;
}
public static OverlayOptions convert(PolygonOptions options) {
return new com.baidu.mapapi.map.PolygonOptions()
.points(convert(options.getPoints()))
.stroke(new Stroke(Math.round(options.getStrokeWidth()), options.getStrokeColor()))
.fillColor(options.getFillColor());
}
}