<1>GeoPoint
表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储。
方法 |
---|
GeoPoint(int latitudeE6, int longitudeE6)
|
方法介绍:
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)
|
void |
animateTo(GeoPoint point, Message message)
|
boolean |
onKey(View v, int keyCode, KeyEvent event)
|
void |
scrollBy(int x, int y)
|
void |
setCenter(GeoPoint point)
|
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)
|
void |
computeScroll()
|
void |
displayZoomControls(boolean takeFocus)
|
protected android.view.ViewGroup.LayoutParams |
generateDefaultLayoutParams()
|
protected android.view.ViewGroup.LayoutParams |
generateLayoutParams(android.view.ViewGroup.LayoutParams p) |
android.view.ViewGroup.LayoutParams |
generateLayoutParams(AttributeSet attrs) |
MapController |
getController()
|
int |
getLatitudeSpan()
|
int |
getLongitudeSpan()
|
GeoPoint |
getMapCenter()
|
int |
getMaxZoomLevel()
|
java.util.List<Overlay> |
getOverlays()
|
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)
|
boolean |
onKeyUp(int keyCode, KeyEvent event)
|
protected void |
onLayout(boolean flag, int l, int t, int r, int b) |
protected void |
onMeasure(int widthMeasureSpec, int heightMeasureSpec) |
void |
onRestoreInstanceState(Bundle state)
|
void |
onSaveInstanceState(Bundle state)
|
protected void |
onSizeChanged(int w, int h, int oldw, int oldh)
|
boolean |
onTouchEvent(MotionEvent event)
|
boolean |
onTrackballEvent(MotionEvent event)
|
void |
onWindowFocusChanged(boolean hasFocus)
|
void |
preLoad() |
void |
setDrawOverlayWhenZooming(boolean bDraw)
|
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()关闭这个功能。
返回类型 |
方法 |
---|---|
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()
|
Location |
getLastFix()
|
GeoPoint |
getMyLocation()
|
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)
|
boolean |
onSnapToItem(int x, int y, android.graphics.Point snapPoint, MapView mapView)
|
boolean |
onTap(GeoPoint p, MapView mapView)
|
boolean |
runOnFirstFix(java.lang.Runnable runnable)
|
<6>Overlay
Overlay 是一个基类,它表示可以显示在地图上方的覆盖overlay。 添加一个overlay时,从这个基类派生出一个子类,创建一个实例,然后把它加入到一个列表中。这个列表通过调用 MapView.getOverlays()得到。为了允许用户触摸去对齐一个点,子类应当实现Overlay.Snappable接口。
返回类型 |
方法 |
---|---|
boolean |
draw(Canvas canvas, MapView mapView, boolean shadow)
|
boolean |
draw(Canvas canvas, MapView mapView, boolean shadow, long when)
|
protected static void |
drawAt(Canvas canvas, Drawable drawable, int x, int y, boolean bShadow)
|
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)
|