osmdroid API解读(一)
osmdroid-android模块 org.osmdroid.api包
1、IGeoPoint
/**
* 一个类似于Google Map的GeoPoint
*/
public interface IGeoPoint {
@Deprecated
int getLatitudeE6();
@Deprecated
int getLongitudeE6();
double getLatitude();//获取纬度
double getLongitude();//获取经度
}
2、IProjection
/**
* 相似于 Google Maps API Projection 接口
* 被osmdroid {@link org.osmdroid.views.Projection}类实现
*
* @author Neil Boyd
*
*/
public interface IProjection {
/**
* 转化{@link IGeoPoint}点为屏幕像素坐标(屏幕左上角点为原点)
* @param in 要转换的经纬度
* @param out 输出的屏幕像素坐标
*/
Point toPixels(IGeoPoint in, Point out);
/**
* 将屏幕像素坐标的一点转换为经纬度坐标
*/
IGeoPoint fromPixels(int x, int y);
/**
* 将以米为单位的长度转换为当前缩放等级下以像素为单位的长度,在默认的墨卡托投影下,越远离赤道,得到的像素值会越大
* @param meters 米为单位的长度
* @return 如果在赤道上测量时等于在当前缩放等级下相应距离的像素点数
*
float metersToEquatorPixels(float meters);
/**
* 获取东北角点的坐标值
*/
IGeoPoint getNorthEast();
/**
* 获取西南角点的坐标值
*/
IGeoPoint getSouthWest();
}
3、IMapController
/**
* 类似于Google Maps API MapController类的接口
* 被osmdroid {@link org.osmdroid.views.MapController}实现
*/
public interface IMapController {
//移动
void animateTo(IGeoPoint geoPoint);
void animateTo(int x, int y);
void scrollBy(int x, int y);
//停止Animatio Panning
void stopAnimation(boolean jumpToFinish);
void stopPanning();
//设置中心点
void setCenter(IGeoPoint point);
//缩放
int setZoom(int zoomLevel);
double setZoom(final double pZoomLevel);
boolean zoomIn();
boolean zoomIn(Long animationSpeed);
boolean zoomInFixing(int xPixel, int yPixel, Long zoomAnimation);
boolean zoomInFixing(int xPixel, int yPixel);
boolean zoomOut(Long animationSpeed);
boolean zoomOut();
boolean zoomOutFixing(int xPixel, int yPixel);
boolean zoomTo(int zoomLevel);
boolean zoomTo(int zoomLevel, Long animationSpeed);
boolean zoomToFixing(int zoomLevel, int xPixel, int yPixel, Long zoomAnimationSpeed);
boolean zoomTo(double pZoomLevel, Long animationSpeed);
boolean zoomTo(final double pZoomLevel);
boolean zoomToFixing(int zoomLevel, int xPixel, int yPixel);
boolean zoomToFixing(double zoomLevel, int xPixel, int yPixel, Long zoomAnimationSpeed);
boolean zoomToFixing(final double pZoomLevel, final int pXPixel, final int pYPixel);
void zoomToSpan(int latSpanE6, int lonSpanE6);
void zoomToSpan(double latSpan, double lonSpan);
}
/**
* 相似于Google Maps API MapView类
* 被osmdroid {@link org.osmdroid.views.MapView}实现
*/
public interface IMapView {
IMapController getController();//控制器
IProjection getProjection();//投影
//获取状态
int getZoomLevel();
double getZoomLevelDouble();
int getMaxZoomLevel();
int getLatitudeSpan();
int getLongitudeSpan();
double getLatitudeSpanDouble();
double getLongitudeSpanDouble();
IGeoPoint getMapCenter();
//设置背景颜色
void setBackgroundColor(int color);
}