Google map api v2 trong android

Trong bài này  mình sẽ hướng dẫn các bạn làm việc với Google Map API v2 trong android.

Để làm việc với Google Map API v2 các bạn cần chuẩn bị các thứ bước như sau.

Bước 1: Download google-play-services_lib và google API (nên download google API mới nhất trong ví dụ này mình dùng google API 8)

Google Map, ban do, android, android tips, thu thuat android

Note: Các bnchú ý nếu các bn dùng min SDK là 8 thì các bn phi dung google play services for Froyo

Nếu các bn đ min SDK là 11 thì có th dùng google play services

Trong ví d này mình dung min SDK là 8 nên mình dùng google play services for Froyo

Bước 2.  Đăng ký api key: Tạo project

Trong  ví dụ này mình tạo project có tên là: GGMapAPIV2Demo

Và package là: truongbs.fet.hut.ggmapapiv2demo

Bước 3. Add libbary:

Các bạn làm lần lượt theo hình dưới:

Chọn File -> import -> Existing Android Code Into Workspace

Google Map, ban do, android, android tips, thu thuat android

Google Map, ban do, android, android tips, thu thuat android

 

Check vào ô Copy projects into workspace(các bạn lưu ý điều này)

Chọn Browse …

Google Map, ban do, android, android tips, thu thuat android

 

Chọn đường dẫn đến android sdk của bạn sdk->Extra ->google->google_play_services_lib_froyo->libproject->google-play-services_lib -> ok

Google Map, ban do, android, android tips, thu thuat android

 

Sau khi import xong trong Eclipse của các bạn có project sau

 

Google Map, ban do, android, android tips, thu thuat android

Để import lib vào project của bạn bạn làm như sau

Chuột phải vào project của bạn chọn properties

Google Map, ban do, android, android tips, thu thuat android

Chọn android -> Add

Google Map, ban do, android, android tips, thu thuat android

Chọn google-play-services_lib -> ok

Google Map, ban do, android, android tips, thu thuat android

Nếu add thành công thì  màn hình sẽ có dấu v màu xanh như hình dưới nếu đó là chữ X màu đỏ thì tức là khi import google-playservices các bạn đã k check  copy project into workspace như mình lưu ý ở trên các bạn lưu ý điều này nhé

Google Map, ban do, android, android tips, thu thuat android

Bước 4. Tạo API KEY

Để tạo API key các bạn vào link sau

https://console.developers.google.com/project

Create Project

Google Map, ban do, android, android tips, thu thuat android

 

Nhập project name: các bạn nhập tên project các bạn đã tạo trong eclipse: trong ví dụ của mình là: GGMapAPIV2Demo -> Create

Google Map, ban do, android, android tips, thu thuat android

 

Sau khi tạo xong các bạn chọn APIS & AUTH -> APIs -> scrool xuống dưới tìm Google Maps Android API v2 -> click Off

Google Map, ban do, android, android tips, thu thuat android

Sau khi xong thì các bạn scrool ngược lên trên thấy google maps anroid API v2 của bạn đã ON

Google Map, ban do, android, android tips, thu thuat android

Tiếp theo các bạn chọn Credentials -> Create new Key -> Android Key

Google Map, ban do, android, android tips, thu thuat android

Đến đây các bạn cần lấy mã SHA1 và package của bạn

Để lấy mã SHA1 bạn vào Eclipse -> Window -> Preferences

Google Map, ban do, android, android tips, thu thuat android

 

Chọn Android Build các bạn sẽ thấy mã SHA1 như trong hình dưới

Google Map, ban do, android, android tips, thu thuat android

Package thì các bạn có thể lấy trong manifest

Google Map, ban do, android, android tips, thu thuat android

Bạn copy mã SHA1;package như hình dưới với máy của mình nó có dạng

A4:93:24:1E:62:C9:01:55:B1:59:CC:3F:19:92:B9:EE:DD:FB:78:06;truongbs.fet.hut.ggmapapiv2demo

Google Map, ban do, android, android tips, thu thuat android

 

Chọn Create -> các bạn có API key

Google Map, ban do, android, android tips, thu thuat android

 

Đến đây các công việc chuẩn bị đã xong các bạn có thể bắt tay vào code

Note trong bài này mình c gng hướng dn tht chi tiết vì vic add lib support trong android thường hu hết đu làm như vy thong thường SDK trong android có 2 dng

1 là lib là project 2 là jar file. Cách này là add lib là project các bn nên chú ý điu này

 

Trong bài này mình sẽ làm một app đơn giản với google map là tạo google map

Cho google map view đến 1 điểm ở Hà Nội

Tạo maker trên google map và vẽ một đường thẳng google map

 

Để làm được app này các bạn thực hiện các bước sau:

Bước 1: Khai báo manifest

<?xml version="1.0" encoding="utf-8"?>



<manifest xmlns:android="http://schemas.android.com/apk/res/android"

 package="truongbs.fet.hut.ggmapapiv2demo"

 android:versionCode="1"

 android:versionName="1.0" >



<uses-sdk

 android:minSdkVersion="8"

 android:targetSdkVersion="8" />



 <permission

 android:name="truongbs.fet.hut.ggmapapiv2demo.permission.MAPS_RECEIVE"

 android:protectionLevel="signature" />



 <uses-permission android:name="truongbs.fet.hut.ggmapapiv2demo.permission.MAPS_RECEIVE" />



 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 <uses-permission android:name="android.permission.INTERNET" />

 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



 <!-- Required to show current location -->

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />



 <!-- Required OpenGL ES 2.0. for Maps V2 -->

 <uses-feature

 android:glEsVersion="0x00020000"

 android:required="true" />



<application

 android:allowBackup="true"

 android:icon="@drawable/ic_launcher"

 android:label="@string/app_name"

 android:theme="@style/AppTheme" >

 <activity

 android:name="truongbs.fet.hut.ggmapapiv2demo.MainActivity"

 android:label="@string/app_name" >

 <intent-filter>

 <action android:name="android.intent.action.MAIN" />



<category android:name="android.intent.category.LAUNCHER" />

 </intent-filter>

 </activity>



 <!-- Google API Key -->

 <meta-data

 android:name="com.google.android.maps.v2.API_KEY"

 android:value="AIzaSyD3EZzDr0cyF8YskcqQ0RtYLhl231oUUEo" />



 </application>



</manifest>

Note các bạn cần thay thế API Key của các bạn vào phần android:value=”AIzaSyD3EZzDr0cyF8YskcqQ0RtYLhl231oUUEo”

Google Map, ban do, android, android tips, thu thuat android

Bước 2: Mở file activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"



xmlns:tools="http://schemas.android.com/tools"

 android:layout_width="match_parent"

 android:layout_height="match_parent"

 tools:context=".MainActivity" >



<fragment

 android:id="@+id/map"

 class="com.google.android.gms.maps.SupportMapFragment"

 android:layout_width="match_parent"

 android:layout_height="match_parent"/>



</RelativeLayout>

Bước 3 Mở file MainActivity.java

package truongbs.fet.hut.ggmapapiv2demo;



import android.graphics.Color;

import android.os.Bundle;

import android.support.v4.app.FragmentActivity;

import android.view.Menu;



import com.google.android.gms.maps.CameraUpdateFactory;

import com.google.android.gms.maps.GoogleMap;

import com.google.android.gms.maps.SupportMapFragment;

import com.google.android.gms.maps.model.BitmapDescriptorFactory;

import com.google.android.gms.maps.model.CameraPosition;

import com.google.android.gms.maps.model.LatLng;

import com.google.android.gms.maps.model.MarkerOptions;

import com.google.android.gms.maps.model.PolylineOptions;



public class MainActivity extends FragmentActivity {



GoogleMap map;



@Override

 protected void onCreate(Bundle savedInstanceState) {

 super.onCreate(savedInstanceState);

 setContentView(R.layout.activity_main);



// Getting reference to SupportMapFragment of the activity_main

 SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()

 .findFragmentById(R.id.map);



// Getting Map for the SupportMapFragment

 map = fm.getMap();



// Enable/Disable MyLocation Button in the Map

 map.setMyLocationEnabled(true);



// Enable/Disable Zoom Control

 map.getUiSettings().setZoomControlsEnabled(true);



// viewPoint Ha Noi

 ViewPoint(21.02785, 105.852283, 15, 0, 0);



// creat Maker Ha Noi - Viet Nam

 CreatMaker(21.02785, 105.852283, "Ha Noi", " Hoan Kiem Ha Noi Viet Nam");



 // creat Maker Ha Noi - Viet Nam with custom icon maker

 // unlock src to test funtion

 //CreatMakerWithDrawable(21.02785, 105.852283, "Ha Noi", " Hoan Kiem Ha Noi Viet Nam",R.drawable.ic_launcher);



// draw line on Map

 drawLine(21.02785, 105.852283, 21.030704, 105.852369);



}



@Override

 public boolean onCreateOptionsMenu(Menu menu) {

 // Inflate the menu; this adds items to the action bar if it is present.

 getMenuInflater().inflate(R.menu.main, menu);

 return true;

 }



private void drawLine(double lat1, double long1, double lat2, double long2) {



// draw a line have location (lat1,long1) & (lat2,long2)

 map.addPolyline(new PolylineOptions()

 .add(new LatLng(lat1, long1), new LatLng(lat2, long2)).width(5)

 .color(Color.RED));



}



private void CreatMaker(double latitude, double longitude, String mTitle,

 String mSnippet) {

 map.addMarker(new MarkerOptions()

 .position(new LatLng(latitude, longitude))

 .title(mTitle)

 .snippet(mSnippet)

 .icon(BitmapDescriptorFactory

 .defaultMarker(BitmapDescriptorFactory.HUE_RED)));

 }



// creat maker with icon is image

 private void CreatMakerWithDrawable(double latitude, double longitude,

 String mTitle, String mSnippet, int icon) {

 map.addMarker(new MarkerOptions()

 .position(new LatLng(latitude, longitude)).title(mTitle)

 .snippet(mSnippet)

 .icon(BitmapDescriptorFactory.fromResource(icon)));

 }



private void ViewPoint(double lattitude, double longitude, float mZoom,

 float mtilt, float mbearing) {



// Init View Position

 CameraPosition mPosition = new CameraPosition(new LatLng(lattitude,

 longitude), mZoom, mtilt, mbearing);



// update camera

 map.animateCamera(CameraUpdateFactory.newCameraPosition(mPosition));



}



}

Note trong ví d này mình comment  bng tiếng anh theo thói quen các bn cũng nên tp điu này(tiếng anh ca mình không tt lm các bn thông cm :D)

Các bạn có thể down full src theo link dưới dây

GGMapAPIV2Demo

Kết quả thực hiện chương trình

Google Map, ban do, android, android tips, thu thuat android

 

Google Map, ban do, android, android tips, thu thuat android

 

 

 HỖ TRỢ TRỰC TUYẾN