Android GPS 定位的實現(2-1) 使用Google地圖

來源:互聯網
上載者:User

要在Android用戶端顯示Google地圖,就要使用google 的API,這次使用的的不是Android 的SDK而是直接使得的Google的,因為沒有細究,所以他們之間具體有多少區別,現在還不太清楚,等有時間了,再仔細看一看,顯示地圖使用的是View為:com.google.android.maps.MapView 但是要使用的話,還得去google 申請一個Map的Key去,具體怎麼申請,這裡不再細說,不過個人感覺如果是測試的話,隨便找一個Key也是可以的沒有感覺到什麼不同,不知道發布的時候怎麼樣。

以面的做完之後,因為地圖使用的是網路,因此必須得有網路的存取權限,這個需要添加上去。否則無法得到地圖資訊。

下面 就是實現代碼:

首先定義地圖的控制器:

    private MapController mapController;

private GeoPoint geoPoint; //這個表示的是定位中心點在代碼中有實現

 

然後就可以實現了!

 

下面是實現代碼:

代碼


setContentView(R.layout.main);

MapView mapView = (MapView)findViewById(R.id.mapview1);

mapController = mapView.getController();
mapView.setEnabled(true);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);

geoPoint = new GeoPoint((int)40.9166666666667*1000000,(int)116.816666666667*1000000);
mapController.animateTo(geoPoint);
mapController.setZoom(12);

 

如果要在某點顯示資訊的話,可以通過下面的函數進行設定:

 

代碼

class MyLocationOverlay extends Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Paint paint = new Paint();
Point myScreenCoords = new Point();
// 將經緯度轉換成實際螢幕座標
mapView.getProjection().toPixels(geoPoint, myScreenCoords);
paint.setStrokeWidth(1);
paint.setARGB(255, 255, 0, 0);
paint.setStyle(Paint.Style.STROKE);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.home);
canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
canvas.drawText("要顯示的名稱", myScreenCoords.x, myScreenCoords.y, paint);
return true;
}
}

 

當然要顯示地圖,如果我們繼承的是Activity的話,是無法進行顯示的,所以要改為MapActivity,這也就是為什麼要使用google Api的原因了!

好了,這個地圖,結合前面講的GPS資訊擷取都已經實現了,再下面就可以實現通過GPS定位了,其實你只要把他們兩個結合起來就能實現定位了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.