package org.osmdroid.google.wrapper.v2;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import org.osmdroid.api.IGeoPoint;
import org.osmdroid.api.IProjection;
import android.graphics.Point;
public class Projection implements IProjection {
private final com.google.android.gms.maps.Projection mProjection;
private final Point mPoint = new Point();
public Projection(final com.google.android.gms.maps.Projection aProjection) {
mProjection = aProjection;
}
@Override
public Point toPixels(final IGeoPoint in, final Point out) {
final LatLng latLng = new LatLng(in.getLatitude(), in.getLongitude());
final Point point = mProjection.toScreenLocation(latLng);
if (out != null) {
out.x = point.x;
out.y = point.y;
}
return point;
}
@Override
public IGeoPoint fromPixels(final int x, final int y) {
mPoint.x = x;
mPoint.y = y;
final LatLng latLng = mProjection.fromScreenLocation(mPoint);
return new GeoPoint(latLng);
}
@Override
public float metersToEquatorPixels(final float meters) {
return 0; // TODO implement this
}
@Override
public IGeoPoint getNorthEast() {
final LatLngBounds bounds = mProjection.getVisibleRegion().latLngBounds;
return new GeoPoint(bounds.northeast);
}
@Override
public IGeoPoint getSouthWest() {
final LatLngBounds bounds = mProjection.getVisibleRegion().latLngBounds;
return new GeoPoint(bounds.southwest);
}
}