Android學習筆記之百度地圖Overlay

<1>GeoPoint

表示一個地理座標點,存放經度和緯度,以微度的整數形式存儲。
方法
GeoPoint(int latitudeE6, int longitudeE6)用給定的經緯度構造一個GeoPoint

方法介紹:

public int getLatitudeE6() php

           返回GeoPoint的緯度,單位微度 java

public int getLongitudeE6() android

          返回GeoPoint的經度,單位微度 git

public void setLatitudeE6(int latitudeE6) canvas

         設置GeoPoint的緯度,單位微度 api

public void setLongitudeE6(int longitudeE6) app

        設置GeoPoint的經度,單位微度 ide


<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()關閉這個功能。
返回類型 方法
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)處理一個軌跡球事件。
相關文章
相關標籤/搜索