<1>GeoPoint
表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储。
方法 |
---|
GeoPoint(int latitudeE6, int longitudeE6)用给定的经纬度构造一个GeoPoint |
方法介绍:
public int getLatitudeE6()
返回GeoPoint的纬度,单位微度
public int getLongitudeE6()
返回GeoPoint的经度,单位微度
public void setLatitudeE6(int latitudeE6)
设置GeoPoint的纬度,单位微度
public void setLongitudeE6(int longitudeE6)
设置GeoPoint的经度,单位微度
<2>接口 Projection
该接口用来在屏幕像素x/y坐标系和地球经纬度坐标系之间进行转换,通过 MapView.getProjection()来取得映射类。GeoPoint fromPixels(int x, int y)
该方法用给定的像素坐标创建一个新的GeoPoint。 给定的像素点是以MapView的左上角为原点的坐标系统,MapView提供了这个像素转换器(PixelConverter)。 参数:result - 搜索结果iError - 错误号,0表示正确返回Point toPixels(GeoPoint in, Point out)
把给定的GeoPoint变换到相对于MapView左上角的屏幕像素坐标。MapView提供了这种投影变换。 参数:in - 待变换的一对经纬度out - 一个用于输出预先存在的对象;如果为空,将返回一个新分配的像素点。<3>MapController
处理地图移动和缩放的工具类。
返回类型 | 方法 |
---|---|
void | animateTo(GeoPoint point)对以给定的点GeoPoint,开始动画显示地图。 |
void | animateTo(GeoPoint point, Message message)对以给定的GeoPoint,开始动画显示地图。 |
boolean | onKey(View v, int keyCode, KeyEvent event)处理按键事件,把事件变换为适度的地图平移。 |
void | scrollBy(int x, int y)按照给定的像素数据量滚动。 |
void | setCenter(GeoPoint point)在给定的中心点GeoPoint上设置地图视图。 |
int | setZoom(int zoomLevel)设置地图的缩放级别。 |
void | stopAnimation(boolean jumpToFinish)终止所有未完成的动画,有条件的把地图中心修正到已完成的特殊动画的偏移量上去。 |
void | stopPanning()重新设置平移状态,使地图静止。 |
boolean | zoomIn()放大一个级别。 |
boolean | zoomInFixing(int xPixel, int yPixel)放大一个级别。 |
boolean | zoomOut()缩小一个级别。 |
boolean | zoomOutFixing(int xPixel, int yPixel)缩小一个级别。 |
void | zoomToSpan(int latSpanE6, int lonSpanE6)尝试调整地图的缩放,以便显示给定的经纬度范围。 |
<4>MapView
一个显示地图的视图,当被焦点选中时,它能捕获按键事件和触摸手势去平移和缩放地图。
返回类型 | 方法 |
---|---|
boolean | canCoverCenter()检查当前是否有地图贴片覆盖地图中心点。 |
protected boolean | checkLayoutParams (android.view.ViewGroup.LayoutParams p)仅检查p是否是的一个MapView.LayoutParams实例。 |
void | computeScroll()捕获滚动事件,用它们去平移地图。 |
void | displayZoomControls(boolean takeFocus)显示缩放控件,可以选择是否请求焦点选中以便通过按键访问。 |
protected android.view.ViewGroup.LayoutParams | generateDefaultLayoutParams()返回一个Layout参数的集合,其中参数带有ViewGroup.LayoutParams.WRAP_CONTENT的宽度,ViewGroup.LayoutParams.WRAP_CONTENT高度和坐标(0,0)。 |
protected android.view.ViewGroup.LayoutParams | generateLayoutParams(android.view.ViewGroup.LayoutParams p) |
android.view.ViewGroup.LayoutParams | generateLayoutParams(AttributeSet attrs) |
MapController | getController()返回地图的MapController,这个对象可用于控制和驱动平移和缩放。 |
int | getLatitudeSpan()当前纬线的跨度(从地图的上边缘到下边缘),十进制度×1,000,000。 |
int | getLongitudeSpan()当前经度的跨度(从地图的左边缘到地图的右边缘),单位:十进制的度×1,000,000。 |
GeoPoint | getMapCenter()返回当前地图中心点位置,做为一个GeoPoint(经度、纬度)的对象。 |
int | getMaxZoomLevel()返回当前视图中心点的最大缩放级别。 |
java.util.List<Overlay> | getOverlays()获取Overlay列表。 |
Projection | getProjection()获取屏幕像素坐标和经纬度对之间的转换。 |
View | getZoomControls()已过时。 |
int | getZoomLevel()返回当前地图的缩放级别。 |
boolean | isSatellite() |
boolean | isStreetView() |
boolean | isTraffic()是否显示交通流量。 |
protected void | onDetachedFromWindow()当被分离调用,清除缩放控件。 |
protected void | onDraw(Canvas canvas) |
void | onFocusChanged(boolean hasFocus, int direction, Rect previouslyFocusedRect)当这个视图的焦点状态变化时被视图系统调用。 |
boolean | onKeyDown(int keyCode, KeyEvent event)把按键传送到overlay。 |
boolean | onKeyUp(int keyCode, KeyEvent event)把按键传送到overlay。 |
protected void | onLayout(boolean flag, int l, int t, int r, int b) |
protected void | onMeasure(int widthMeasureSpec, int heightMeasureSpec) |
void | onRestoreInstanceState(Bundle state)把MapView的状态恢复到一个Bundle。 |
void | onSaveInstanceState(Bundle state)把MapView的状态存储到一个Bundle中。 |
protected void | onSizeChanged(int w, int h, int oldw, int oldh)重新调整地图对象的尺寸。 |
boolean | onTouchEvent(MotionEvent event)首先把touch事件传送到overlay,如果它不处理它们,就把事件再传送到手势探测器,然后分发探测到的手势。 |
boolean | onTrackballEvent(MotionEvent event)把trackball事件首先传送到overlay,如果它们不处理消息,尝试取平移和点击。 |
void | onWindowFocusChanged(boolean hasFocus)当包含这个视图的窗口得到或是去焦点时被调用。 |
void | preLoad() |
void | setDrawOverlayWhenZooming(boolean bDraw)设置在缩放动画过程中是否绘制overlay,默认为不绘制。 如果绘制,在覆盖物很多的情况下效率会有损失。 自1.1版本之后支持。 |
void | setBuiltInZoomControls(boolean on)设置是否启用内置的缩放控件。 |
void | setReticleDrawMode(com.baidu.mapapi.MapView.ReticleDrawMode mode)暂不支持。 |
void | setSatellite(boolean on)设置是否打开卫星图。 |
void | setStreetView(boolean on)暂不支持。 |
void | setTraffic(boolean on)设置是否打开交通流量图层。 |
void | regMapViewListener(BMapManager bmapMan, MKMapViewListener listener)注册地图显示事件监听器。 |
<5>MyLocationOverlay
一个负责显示用户当前位置的Overlay。
Overlay是一个覆盖,它绘制用户当前在地图上的位置(精准度),和/或一个嵌入的指南针。子类能覆盖方法dispatchTap()去处理对当前位置的点击。
为了开启这个overlay的功能,需要去调用enableMyLocation()和/或enableCompass(), 或调用Activity中的Activity.onResume()方法。记住,当在后台是,要在Activity中的Activity.onPause()方法中调用相应的disableMyLocation()和/或disableCompass()关闭这个功能。
Overlay是一个覆盖,它绘制用户当前在地图上的位置(精准度),和/或一个嵌入的指南针。子类能覆盖方法dispatchTap()去处理对当前位置的点击。
为了开启这个overlay的功能,需要去调用enableMyLocation()和/或enableCompass(), 或调用Activity中的Activity.onResume()方法。记住,当在后台是,要在Activity中的Activity.onPause()方法中调用相应的disableMyLocation()和/或disableCompass()关闭这个功能。
返回类型 | 方法 |
---|---|
void | disableCompass()关闭指南针的更新。 |
void | disableMyLocation()停止位置更新。 |
protected boolean | dispatchTap()在“我的位置”坐标上处理点击事件。 |
boolean | draw(Canvas canvas, MapView mapView, boolean shadow, long when)绘制方法。 |
protected void | drawCompass(android.graphics.Canvas canvas, float bearing)绘制指南针。 |
protected void | drawMyLocation(Canvas canvas, MapView mapView, android.location.Location lastFix, GeoPoint myLocation, long when)绘制“我的位置”点。 |
boolean | enableCompass()开启指南针更新功能。 |
boolean | enableMyLocation()尝试开启MyLocation功能,并向MKLocationManager.GPS_PROVIDER和MKLocationManager.NETWORK_PROVIDER注册更新。 |
Location | getLastFix()返回一个位置,对应于最近设定的用户位置。 |
GeoPoint | getMyLocation()返回一个GeoPoint,对应于一个最近设定的用户位置。 |
float | getOrientation()返回最近设定的的指南针朝向。 |
boolean | isCompassEnabled()检查指南针小部件是否被显示。 |
boolean | isMyLocationEnabled() |
void | onAccuracyChanged(Sensor sensor, int accuracy) |
void | onLocationChanged(Location location)监听并获取位置更新。 |
void | onProviderDisabled(java.lang.String provider) |
void | onProviderEnabled(java.lang.String provider) |
void | onSensorChanged(SensorEvent event)当指南针的值变换时,由SensorManager调用。 |
boolean | onSnapToItem(int x, int y, android.graphics.Point snapPoint, MapView mapView)检查给定的(x,y)是否和引起当前行为(如缩放)的item足够靠近。 |
boolean | onTap(GeoPoint p, MapView mapView)检查点击的位置是否非常接近于当前的位置(如果已知)。 |
boolean | runOnFirstFix(java.lang.Runnable runnable)把一个runnable加入队列,一旦收到一个位置信息,这个runnable就被执行。 |
<6>Overlay
Overlay是一个基类,它表示可以显示在地图上方的覆盖overlay。 添加一个overlay时,从这个基类派生出一个子类,创建一个实例,然后把它加入到一个列表中。这个列表通过调用MapView.getOverlays()得到。为了允许用户触摸去对齐一个点,子类应当实现Overlay.Snappable接口。返回类型 | 方法 |
---|---|
boolean | draw(Canvas canvas, MapView mapView, boolean shadow)在地图上绘制overlay。 |
boolean | draw(Canvas canvas, MapView mapView, boolean shadow, long when)专门绘制动画overlay的调用。 |
protected static void | drawAt(Canvas canvas, Drawable drawable, int x, int y, boolean bShadow)在某个偏移位置画一个Drawable的便捷方法。 |
boolean | onKeyDown(int keyCode, KeyEvent event, MapView mapView)处理一个按键被按下的事件。 |
boolean | onKeyUp(int keyCode, KeyEvent event, MapView mapView)处理一个按键放开事件。 |
boolean | onTap(GeoPoint p, MapView mapView)处理一个“点击”事件。 |
boolean | onTouchEvent(MotionEvent e, MapView mapView)处理一个触摸事件。 |
boolean | onTrackballEvent(MotionEvent e, MapView mapView)处理一个轨迹球事件。
|