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

org.onepf.opfmaps.osmdroid.delegate.model.OsmdroidGroundOverlayOptionsDelegate Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2012-2015 One Platform Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License 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.
 */

package org.onepf.opfmaps.osmdroid.delegate.model;

import android.os.Parcel;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import org.onepf.opfmaps.osmdroid.model.BitmapDescriptor;
import org.onepf.opfmaps.osmdroid.model.GroundOverlayOptions;
import org.onepf.opfmaps.delegate.model.GroundOverlayOptionsDelegate;
import org.onepf.opfmaps.model.OPFBitmapDescriptor;
import org.onepf.opfmaps.model.OPFLatLng;
import org.onepf.opfmaps.model.OPFLatLngBounds;
import org.osmdroid.util.BoundingBoxE6;
import org.osmdroid.util.GeoPoint;

/**
 * @author Roman Savin
 * @since 03.08.2015
 */
public final class OsmdroidGroundOverlayOptionsDelegate implements GroundOverlayOptionsDelegate {

    public static final Creator CREATOR = new Creator() {
        @Override
        public OsmdroidGroundOverlayOptionsDelegate createFromParcel(final Parcel source) {
            return new OsmdroidGroundOverlayOptionsDelegate(source);
        }

        @Override
        public OsmdroidGroundOverlayOptionsDelegate[] newArray(final int size) {
            return new OsmdroidGroundOverlayOptionsDelegate[size];
        }
    };

    @NonNull
    private final GroundOverlayOptions groundOverlayOptions;

    public OsmdroidGroundOverlayOptionsDelegate() {
        this.groundOverlayOptions = new GroundOverlayOptions();
    }

    private OsmdroidGroundOverlayOptionsDelegate(@NonNull final Parcel parcel) {
        this.groundOverlayOptions = parcel.readParcelable(GroundOverlayOptions.class.getClassLoader());
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate anchor(final float u, final float v) {
        groundOverlayOptions.anchor(u, v);
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate bearing(final float bearing) {
        groundOverlayOptions.bearing(bearing);
        return this;
    }

    @Override
    public float getAnchorU() {
        return groundOverlayOptions.getAnchorU();
    }

    @Override
    public float getAnchorV() {
        return groundOverlayOptions.getAnchorV();
    }

    @Override
    public float getBearing() {
        return groundOverlayOptions.getBearing();
    }

    @Nullable
    @Override
    public OPFLatLngBounds getBounds() {
        final BoundingBoxE6 bounds = groundOverlayOptions.getBounds();
        if (bounds != null) {
            return new OPFLatLngBounds(new OsmdroidLatLngBoundsDelegate(bounds));
        }
        return null;
    }

    @Override
    public float getHeight() {
        return groundOverlayOptions.getHeight();
    }

    @Nullable
    @Override
    public OPFBitmapDescriptor getImage() {
        final BitmapDescriptor image = groundOverlayOptions.getImage();
        if (image != null) {
            return new OPFBitmapDescriptor(new OsmdroidBitmapDescriptorDelegate(image));
        }
        return null;
    }

    @Nullable
    @Override
    public OPFLatLng getLocation() {
        final GeoPoint location = groundOverlayOptions.getLocation();
        if (location != null) {
            return new OPFLatLng(new OsmdroidLatLngDelegate(location));
        }
        return null;
    }

    @Override
    public float getTransparency() {
        return groundOverlayOptions.getTransparency();
    }

    @Override
    public float getWidth() {
        return groundOverlayOptions.getWidth();
    }

    @Override
    public float getZIndex() {
        return groundOverlayOptions.getZIndex();
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate image(@NonNull final OPFBitmapDescriptor image) {
        groundOverlayOptions.image((BitmapDescriptor) image.getDelegate().getBitmapDescriptor());
        return this;
    }

    @Override
    public boolean isVisible() {
        return groundOverlayOptions.isVisible();
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate position(@NonNull final OPFLatLng location,
                                                         final float width,
                                                         final float height) {
        groundOverlayOptions.position(new GeoPoint(location.getLat(), location.getLng()), width, height);
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate position(@NonNull final OPFLatLng location, final float width) {
        groundOverlayOptions.position(new GeoPoint(location.getLat(), location.getLng()), width);
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate positionFromBounds(@NonNull final OPFLatLngBounds bounds) {
        groundOverlayOptions.positionFromBounds(new BoundingBoxE6(
                bounds.getNortheast().getLat(),
                bounds.getNortheast().getLng(),
                bounds.getSouthwest().getLat(),
                bounds.getSouthwest().getLng()
        ));
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate transparency(final float transparency) {
        groundOverlayOptions.transparency(transparency);
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate visible(final boolean visible) {
        groundOverlayOptions.visible(visible);
        return this;
    }

    @NonNull
    @Override
    public OsmdroidGroundOverlayOptionsDelegate zIndex(final float zIndex) {
        groundOverlayOptions.zIndex(zIndex);
        return this;
    }

    @Override
    public int describeContents() {
        return groundOverlayOptions.describeContents();
    }

    @Override
    public void writeToParcel(final Parcel dest, final int flags) {
        dest.writeParcelable(groundOverlayOptions, flags);
    }

    @Override
    public boolean equals(final Object other) {
        return other != null
                && (other == this || other instanceof OsmdroidGroundOverlayOptionsDelegate
                && groundOverlayOptions.equals(((OsmdroidGroundOverlayOptionsDelegate) other).groundOverlayOptions));
    }

    @Override
    public int hashCode() {
        return groundOverlayOptions.hashCode();
    }

    @Override
    public String toString() {
        return groundOverlayOptions.toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy