com.mapbar.android.maps
Class MapView

java.lang.Object
  extended by android.view.View
      extended by android.view.ViewGroup
          extended by com.mapbar.android.maps.MapView
All Implemented Interfaces:
android.graphics.drawable.Drawable.Callback, android.view.KeyEvent.Callback, android.view.ViewManager, android.view.ViewParent

public class MapView
extends android.view.ViewGroup

一个显示地图(数据源自mapbar地图服务)的视图,当被焦点选中时,它能捕获按键事件和触摸手势去平移和缩放地图。它也可以被编程控制( getController()),在地图上面绘制一系列的Overlay(getOverlays()).

地图可被多种模式显示;参看setSatellite(boolean), setTraffic(boolean), and setStreetView(boolean). 当不是触摸模式时,可以选则显示一个"十字线"帮助使用平移选择;参看 setReticleDrawMode(com.mapbar.android.maps.MapView.ReticleDrawMode)它也能在屏幕左下角绘制一个mapbar的徽标。

优先的缩放机制是内置的缩放机制,参看 setBuiltInZoomControls(boolean). 当用户平移地图时,缩放控件会自动的显示在MapView的底部。

MapView也是一个ViewGroup,使用LayoutParameters可以让你把views安放在指定的像素偏移点,或者安放在一个特定的经纬度位置。

一个MapView只能被一个 ,构造出来。 这是因为MapView依赖于方位后台网络和文件系统的线程;这些线程必须由MapActivity中生命中期管理来维护。 地图贴片被缓存在你自己应用程序目录的文件系统里。缓存是自动管理的,所以大可不需要你去做任何事情,你可以随意的删除它们。

为了在MapView中显示mapbar地图数据,你必须注册mapbar地图服务和获取一个地图API Key。关于如果获取Maps API Key,请参看 Obtaining a Maps API Key.

一旦你有一个Maps API Key,你需要从XMLlayout中MapView属性中一个特殊的属性里-- android:apiKey -- 引用如果你是从代码中实例化一个MapView直接,你应该通过在MapView构造地图API密钥。


Nested Class Summary
static class MapView.LayoutParams
          和MapView相关的每个子覆盖的信息
static class MapView.ReticleDrawMode
           允许用户去指定十字线以何种模式绘制
 
Nested classes/interfaces inherited from class android.view.ViewGroup
android.view.ViewGroup.MarginLayoutParams, android.view.ViewGroup.OnHierarchyChangeListener
 
Nested classes/interfaces inherited from class android.view.View
android.view.View.BaseSavedState, android.view.View.MeasureSpec, android.view.View.OnClickListener, android.view.View.OnCreateContextMenuListener, android.view.View.OnFocusChangeListener, android.view.View.OnKeyListener, android.view.View.OnLongClickListener, android.view.View.OnTouchListener
 
Field Summary
 
Fields inherited from class android.view.ViewGroup
CLIP_TO_PADDING_MASK, FLAG_SUPPORT_STATIC_TRANSFORMATIONS, FLAG_USE_CHILD_DRAWING_ORDER, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, mDisappearingChildren, mGroupFlags, mOnHierarchyChangeListener, mPersistentDrawingCache, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
 
Fields inherited from class android.view.View
DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIRST_STATE_SET, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, INVISIBLE, KEEP_SCREEN_ON, LAST_STATE_SET, mBottom, mContext, mCurrentAnimation, MIDDLE_STATE_SET, mLayoutParams, mLeft, mMeasuredHeight, mMeasuredWidth, mOnClickListener, mOnCreateContextMenuListener, mOnFocusChangeListener, mOnLongClickListener, mPaddingBottom, mPaddingLeft, mPaddingRight, mPaddingTop, mParent, mRight, mScrollX, mScrollY, mTag, mTop, NO_ID, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FIRST_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_LAST_STATE_SET, PRESSED_MIDDLE_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_SINGLE_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SINGLE_STATE_SET, SOUND_EFFECTS_ENABLED, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET
 
Constructor Summary
MapView(android.content.Context context, android.util.AttributeSet attrs)
          构造一个MapView对象。
MapView(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
          构造一个MapView对象。
MapView(android.content.Context context, java.lang.String apiKey)
          构造一个MapView对象。
 
Method Summary
 boolean canCoverCenter()
          检查当前是否有一个地图贴片覆盖地图的中心。
protected  boolean checkLayoutParams(android.view.ViewGroup.LayoutParams p)
          仅检查p是MapView.LayoutParams的一个实例。
 void computeScroll()
          捕获滚动事件,使用它们去平移地图。
 void displayZoomControls(boolean takeFocus)
          使缩放控件可见,可以选中是否请求焦点选中以便于按键访问。
protected  MapView.LayoutParams generateDefaultLayoutParams()
          返回一个layout参数集合,其宽度为 ViewGroup.LayoutParams.WRAP_CONTENT, 高度为 ViewGroup.LayoutParams.WRAP_CONTENT 坐标点为(0,0)。
 android.view.ViewGroup.LayoutParams generateLayoutParams(android.util.AttributeSet attrs)
           
protected  android.view.ViewGroup.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams p)
           
 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()
          获取屏幕像素坐标和经纬度坐标之间转换的投影映射。
 android.view.View getZoomControls()
          不建议使用: 内置的缩放机制优先,参看setBuiltInZoomControls(boolean).
 int getZoomLevel()
           获取当前地图的缩放级别。
 boolean isSatellite()
           检查地图是否在“卫星”图像模式中。
 boolean isStreetView()
           检查地图是否正在绘制街景(蓝色轮廓)。
 boolean isTraffic()
           检查地图是否正在绘制获取到的交通状况。
protected  void onDetachedFromWindow()
           当被从窗口分离时调用,清除缩放控件。
protected  void onDraw(android.graphics.Canvas canvas)
           主绘制方法。
 void onFocusChanged(boolean hasFocus, int direction, android.graphics.Rect unused)
           当View视图的焦点状态变化时由视图系统调用。
 boolean onKeyDown(int keyCode, android.view.KeyEvent event)
           把按键事件首先传递到overlay,如果得不到处理,尝试去它们平移。
 boolean onKeyUp(int keyCode, android.view.KeyEvent event)
           把按键事件首先传递到overlay,如果得不到处理,尝试去它们平移。
protected  void onLayout(boolean changed, int left, int top, int right, int bottom)
           
protected  void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
           
 void onRestoreInstanceState(android.os.Bundle state)
           把一个MapView的状态恢复到一个Bundle里。
 void onSaveInstanceState(android.os.Bundle state)
           把MapView的状态存储到一个Bundle里。
protected  void onSizeChanged(int w, int h, int oldw, int oldh)
           从新调整地图对象尺寸,重新定位十字线。
 boolean onTouchEvent(android.view.MotionEvent ev)
           首先把trackball事件传递到overlay,如果得不到处理,再把事件传递到手势探测器,然后分发探测到的手势。
 boolean onTrackballEvent(android.view.MotionEvent event)
           首先把trackball事件传递到overlay,如果得不到处理,尝试使用它们去平移和“点击”。
 void onWindowFocusChanged(boolean hasFocus)
           当包含视图的窗口得到或失去焦点时被调用。
 void preLoad()
           在地图当前的中心预装地图贴片。
 void setBuiltInZoomControls(boolean on)
           设置是否去启用内置的缩放控件。
 void setReticleDrawMode(MapView.ReticleDrawMode mode)
           当终端不是在触摸模式下时,指定如何绘制十字线
 void setSatellite(boolean on)
          设置地图模式为“卫星“模式,装载带有道路和名称的俯拍图像贴图。
 void setStreetView(boolean on)
          控制是否在地图上显示街景(蓝色轮廓)。
 void setTraffic(boolean on)
          控制是否在地图上显示交通信息。
 
Methods inherited from class android.view.ViewGroup
addFocusables, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchDraw, dispatchFreezeSelfOnly, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetPressed, dispatchSetSelected, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchWindowFocusChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, findFocus, findViewTraversal, findViewWithTagTraversal, fitSystemWindows, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getPersistentDrawingCache, hasFocus, hasFocusable, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawnWithCacheEnabled, measureChild, measureChildren, measureChildWithMargins, offsetChildrenTopAndBottom, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAnimationEnd, onAnimationStart, onCreateDrawableState, onInterceptTouchEvent, onRequestFocusInDescendants, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestTransparentRegion, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setOnHierarchyChangeListener, setPadding, setPersistentDrawingCache, setStaticTransformationsEnabled, showContextMenuForChild, startLayoutAnimation, updateViewLayout
 
Methods inherited from class android.view.View
applyDrawableToTransparentRegion, bringToFront, buildDrawingCache, cancelLongPress, checkInputConnectionProxy, clearAnimation, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createContextMenu, debug, debugIndent, destroyDrawingCache, draw, finalize, findViewById, findViewWithTag, focusSearch, forceLayout, getAnimation, getApplicationWindowToken, getBackground, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getContext, getContextMenuInfo, getDefaultSize, getDrawableState, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getFocusables, getFocusedRect, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getId, getKeepScreenOn, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMeasuredHeight, getMeasuredWidth, getNextFocusDownId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getParent, getResources, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getScrollBarStyle, getScrollX, getScrollY, getSolidColor, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getTag, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getVerticalFadingEdgeLength, getVerticalScrollbarWidth, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, hasWindowFocus, inflate, initializeFadingEdge, initializeScrollbars, invalidate, invalidate, invalidate, invalidateDrawable, isClickable, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isHapticFeedbackEnabled, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isInEditMode, isInTouchMode, isLayoutRequested, isLongClickable, isPaddingOffsetRequired, isPressed, isRootNamespace, isSaveEnabled, isSelected, isShown, isSoundEffectsEnabled, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVerticalScrollBarHidden, layout, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onCheckIsTextEditor, onCreateContextMenu, onCreateInputConnection, onFinishInflate, onFinishTemporaryDetach, onKeyMultiple, onKeyPreIme, onKeyShortcut, onRestoreInstanceState, onSaveInstanceState, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onWindowVisibilityChanged, performClick, performHapticFeedback, performHapticFeedback, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, refreshDrawableState, removeCallbacks, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestRectangleOnScreen, requestRectangleOnScreen, resolveSize, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, setAnimation, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setClickable, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setEnabled, setFadingEdgeLength, setFocusable, setFocusableInTouchMode, setFrame, setHapticFeedbackEnabled, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setId, setIsRootNamespace, setKeepScreenOn, setLayoutParams, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNextFocusDownId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnClickListener, setOnCreateContextMenuListener, setOnFocusChangeListener, setOnKeyListener, setOnLongClickListener, setOnTouchListener, setPressed, setSaveEnabled, setScrollBarStyle, setScrollContainer, setSelected, setSoundEffectsEnabled, setTag, setTouchDelegate, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVisibility, setWillNotCacheDrawing, setWillNotDraw, showContextMenu, startAnimation, unscheduleDrawable, unscheduleDrawable, verifyDrawable, willNotCacheDrawing, willNotDraw
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface android.view.ViewParent
createContextMenu, getParent, isLayoutRequested, requestLayout
 

Constructor Detail

MapView

public MapView(android.content.Context context,
               java.lang.String apiKey)
构造一个MapView对象。

Parameters:
context - 一个MapActivity 对象.
apiKey - A mapbar Maps API Key. 参见 Obtaining a Maps API Key 获取详细信息。
Throws:
java.lang.IllegalArgumentException - 如果括号内的context不是 MapActivity的一个实例,抛出java.lang.IllegalArgumentException异常。.

MapView

public MapView(android.content.Context context,
               android.util.AttributeSet attrs)
构造一个MapView对象。

Parameters:
context - 一个 MapActivity类.
attrs - 一个属性集;当前没有使用任何属性;
Throws:
java.lang.IllegalArgumentException - 如果括号内的context不是MapActivity的一个实例,抛出java.lang.IllegalArgumentException异常。

MapView

public MapView(android.content.Context context,
               android.util.AttributeSet attrs,
               int defStyle)
构造一个MapView对象。

Parameters:
context - 一个 MapActivity 类.
attrs - 一个属性集;当前没有任何属性。
defStyle - 应用于这个view的默认风格。如果为0,不应用任何风格(主题以外的)。这要么是一个属性资源,其属性值可以从当前主题中得到,或者是一个明确的风格资源。
Throws:
java.lang.IllegalArgumentException - 如果括号内的context不是MapActivity, 的一个实例,或者如果属性不包含一个apiKey。
Method Detail

onSizeChanged

protected void onSizeChanged(int w,
                             int h,
                             int oldw,
                             int oldh)
重新调整地图对象的尺寸和十字线的位置。如果覆盖该方法,一定要通过调用super.onSizeChanged()。

Overrides:
onSizeChanged in class android.view.View

onDetachedFromWindow

protected void onDetachedFromWindow()
当被分离是调用,清除缩放控件。

Overrides:
onDetachedFromWindow in class android.view.View

computeScroll

public void computeScroll()
捕获滚动事件,用它们去平移地图。

Overrides:
computeScroll in class android.view.View

onDraw

protected final void onDraw(android.graphics.Canvas canvas)
主绘制方法。绘制地图背景(装载适当的贴图),所有的Overlays,十字线(如果想要),和mapbar的徽标。同时更新当前正在进行的平移动画。

Overrides:
onDraw in class android.view.View

onMeasure

protected final void onMeasure(int widthMeasureSpec,
                               int heightMeasureSpec)
Overrides:
onMeasure in class android.view.View

onWindowFocusChanged

public void onWindowFocusChanged(boolean hasFocus)
当包含这个视图的窗口得到或是去焦点时被调用。捕获焦点变化事件后终止平移(因为我们不可能在得到keyUP事件了)

Overrides:
onWindowFocusChanged in class android.view.View

onFocusChanged

public void onFocusChanged(boolean hasFocus,
                           int direction,
                           android.graphics.Rect unused)
当这个视图的焦点状态变化时被视图系统调用。捕获焦点变化事件,终止平移。(因为不可能再得到keyUp事件了)

Overrides:
onFocusChanged in class android.view.View

onKeyDown

public boolean onKeyDown(int keyCode,
                         android.view.KeyEvent event)
首先把按键传送到overlay,如果overlay不处理它们,尝试使用它们去平移。

Specified by:
接口android.view.KeyEvent.Callback中onKeyDown有详细说明。
Overrides:
类android.view.View中的onKeyDown。

onKeyUp

public boolean onKeyUp(int keyCode,
                       android.view.KeyEvent event)
把这个事件首先传送到Overlay,如果得不到处理,尝试去平移。

Specified by:
android.View.KeyEvent.Callback接口中的onKeyUp有详细说明。
Overrides:
类android.view.View中的onKeyUp。

onTrackballEvent

public boolean onTrackballEvent(android.view.MotionEvent event)
把trackball事件首先传送到overlay,如果它们不处理消息,尝试取平移和“点击”。

Overrides:
类android.view.View中的onTrackballEvent。

onTouchEvent

public boolean onTouchEvent(android.view.MotionEvent ev)
首先把trackball事件传送到overlay,如果它不处理它们,就把事件再传送到手势探测器,然后分发探测到的手势。 如果这个MapView没有被激活(View.isEnabled()) 或不是可点击的(View.isClickable()),那么将总是返回false。

Overrides:
onTouchEvent in class android.view.View

generateDefaultLayoutParams

protected MapView.LayoutParams generateDefaultLayoutParams()
返回一个Layout参数的集合,其中参数带有ViewGroup.LayoutParams.WRAP_CONTENT的宽度,ViewGroup.LayoutParams.WRAP_CONTENT高度和坐标(0,0)。

Overrides:
generateDefaultLayoutParams in class android.view.ViewGroup

onLayout

protected void onLayout(boolean changed,
                        int left,
                        int top,
                        int right,
                        int bottom)
Specified by:
onLayout in class android.view.ViewGroup

generateLayoutParams

public android.view.ViewGroup.LayoutParams generateLayoutParams(android.util.AttributeSet attrs)
Overrides:
generateLayoutParams in class android.view.ViewGroup

checkLayoutParams

protected boolean checkLayoutParams(android.view.ViewGroup.LayoutParams p)
仅检查p是否是的一个实例。MapView.LayoutParams.

Overrides:
checkLayoutParams in class android.view.ViewGroup
Parameters:
p - 待验证的LayoutParams对象。
Returns:
如果p是MapView LayoutParams的一个实例,返回true;否则返回false。

generateLayoutParams

protected android.view.ViewGroup.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams p)
Overrides:
generateLayoutParams in class android.view.ViewGroup

displayZoomControls

public void displayZoomControls(boolean takeFocus)
显示缩放控件,可以选择是否请求焦点选中以便通过按键访问。

Parameters:
takeFocus - 如果为true,则焦点选中缩放控件。否则不对缩放控件聚焦。

canCoverCenter

public boolean canCoverCenter()
检查当前是否有地图贴片覆盖地图中心。

Returns:
如果地图中心有一个地图贴片,返回true,否则返回false。

preLoad

public void preLoad()
在当前的中心预装地图贴片。这将启动图片传输。


getZoomLevel

public int getZoomLevel()
返回当前地图的缩放级别。在缩放级别1(完全最小),地球赤道是256像素长。每个后续的级别是前一级别的2倍。

Returns:
地图的缩放级别。

setSatellite

public void setSatellite(boolean on)
设置地图模式为“卫星”模式,装载带有道路名称的俯拍图像块。注意当切换回地图模式时(如果当前缩放对于地图模式太高,缩放应切换到地图缩放的最大值),这可能会改变缩放级别。

Parameters:
on - 如果为true,打开卫星贴图;否则,打开常规地图贴图。

isSatellite

public boolean isSatellite()
检查地图是否在“卫星”图像模式。

Returns:
如果是卫星图像模式,返回true。否则返回false。

setTraffic

public void setTraffic(boolean on)
控制是否在地图上显示车辆。这个街景标识不兼容,所以如果需要应当使街景标识失效。车辆可绘制在地图贴图上或卫星贴图上;但对于地图贴图是最优的。

Parameters:
on - 如果为true,打开交通线。否则关闭交通线。

isTraffic

public boolean isTraffic()
检查地图是否正在出现的车辆。

Returns:
如果地图正在绘制车辆,返回true,否则返回false。

setStreetView

public void setStreetView(boolean on)
控制街景是否显示在地图上。这和交通标示不相容,所以如果必要,应该去掉交通标识。街景可以在地图贴图上绘制,也可以在卫星贴图上绘制;但是,它们对地图贴图做了优化。

Parameters:
on - 如果为true,则打开街景开关。否则,关闭街景。

isStreetView

public boolean isStreetView()
检验地图是否正在绘制街道视图(蓝色轮廓)。

Returns:
如果地图正在绘制街道视图,返回true;否则返回false。

getMapCenter

public GeoPoint getMapCenter()
返回当前地图中心点位置,做为一个GeoPoint(经度、纬度)的对象。

Returns:
地图中心点的GeoPoint对象。

getController

public MapController getController()
返回地图的MapController,这个对象可用于控制和驱动平移和缩放。

Returns:
地图的MapController。

getOverlays

public final java.util.List<Overlay> getOverlays()
获取Overlay列表。这个列表中的任何一个Overlay都将被绘制(以升序方式),都能收到事件(以降序方式,直到返回true)。如果你修改了这个列表,你可能得去调用View.postInvalidate(),让你这个改动对用户可见。

Returns:
Overlay列表。这通过运行Collections.synchronizedList(java.util.List); 因此只要你觉得合适,你随时可访问这个列表或者修改它。你做出的修改将反应在下一次绘制或事件上。然而,如果你在列表上循环操作,那么整个循环应当在列表的一个块同步中完成。

getLatitudeSpan

public int getLatitudeSpan()
当前纬线的跨度(从地图的上边缘到下边缘),十进制度×1,000,000。

Returns:
纬线跨度,十进制×1,000,000

getLongitudeSpan

public int getLongitudeSpan()
当前经度的跨度(从地图的左边缘到地图的右边缘),单位:十进制的度×1,000,000

Returns:
经线的跨度,十进制度×1,000,000

setReticleDrawMode

public void setReticleDrawMode(MapView.ReticleDrawMode mode)
指定当终端不是在触摸模式时如何绘制十字线。

Parameters:
mode - 十字线的绘制模式。有效值有: MapView.ReticleDrawMode.DRAW_RETICLE_OVER - 默认值。这种模式下,十字线绘制在所有Overlay的上方,总是可见。 MapView.ReticleDrawMode.DRAW_RETICLE_UNDER - 在所有Overlay绘制之前绘制十字线,这意味着在十字线的位置上的其它任何对象都将覆盖十字线。 MapView.ReticleDrawMode.DRAW_RETICLE_NEVER - 不绘制十字线。

getMaxZoomLevel

public int getMaxZoomLevel()
返回当前视图中心点的最大缩放级别。(并非所有的地区区域都提供同样的高解析度,完整的地图贴片。)要考虑到卫星模式是否启用。

Returns:
地图当前的中心的最大缩放级别。

onSaveInstanceState

public void onSaveInstanceState(android.os.Bundle state)
把MapView的状态存储到一个Bundle中。当前,此函数只存储缩放窗口的中心、缩放级别、和缩放窗口的状态。

Parameters:
state - 保存当前状态的Bundle

onRestoreInstanceState

public void onRestoreInstanceState(android.os.Bundle state)
把MapView的状态恢复到一个Bundle。当前,这个函数只恢复缩放窗口的中心、缩放级别、和状态。

Parameters:
state - 带有前实例状态的Bundle

getZoomControls

@Deprecated
public android.view.View getZoomControls()
不赞成使用。优先选取内置的缩放机制,参看setBuiltInZoomControls(boolean).

返回包含缩放控件的视图(例如,有+/-按钮)。这个视图在当用户通过触摸和开始平移地图时将变成可见的,在和用户之间没有交互时消失。MapView适当的处理这个视图的显示和消失,但Activity负责在屏幕上放置这个控件。把这个视图放到屏幕上常用的方法是使用ViewGroup.addView(View)。

第三版的API引入了一个内置的缩放机制,这个缩放机制可以通过MapView自动显示。这是在UI上显示缩放优先选取的方法。

Returns:
带有缩放控件的视图View。

setBuiltInZoomControls

public void setBuiltInZoomControls(boolean on)
设置是否启用内置的缩放控件。如果启用,MapView将自动显示这些缩放控件。

Parameters:
on - 内置的缩放控件是否启用。如果是false,用户处理缩放控件在界面上的显示。

getProjection

public Projection getProjection()
获取屏幕像素坐标和经纬度对之间的转换。

Returns:
地图在当前状态的投影转换。用户不应该把这个对象用于其它绘制,因为地图的投影转换是变化的。