Hiển thị hình ảnh pin trên Google Map

Thảo luận trong 'Điện thoại, viễn thông' bắt đầu bởi g08ct, 18/9/12.

  1. g08ct New Member

    g08ct

    Tham gia ngày:
    15/8/12
    Bài viết:
    1,116
    Đã được thích:
    55
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Hiển thị hình ảnh pin trên Google Map


    Ta thường thấy khi bật Gôgle Map lên thì trên Smartphone thường xuất hiện hình ảnh để đánh dấu vị trí của user. Ta thử hiển thị ảnh bất kỳ tại một vị trí xác định trên bản đồ.
    Thường kỹ thuật được sử dụng trong hiển thị hình ảnh là Overlay. Ta sẽ tạo một mặt phẳng được tạo ra bởi lớp Overlay để đặt hình ảnh lên màn hình hiển thị MapView.
    Tôi sẽ thử đặt một ảnh Bitmap trên màn hình hiển thị MapView tại một vị trí trên màn hình như sau:
    Tạo lớp Overlay

    Mã:
    public class ThanhTMOverlay extends Overlay{     private final Bitmap bmp;       private final GeoPoint gpoint;            public ThanhTMOverlay(Bitmap bmp, GeoPoint gp) {         this.bmp = bmp;         this.gpoint = gp;       }            public void draw(Canvas canvas, MapView mapView, boolean shadow) {         Projection pro = mapView.getProjection();//Tinh vi tri cua man hinh va Map         Point p = pro.toPixels(gpoint, null);    //Tinh vi tri tu location         canvas.drawBitmap(bmp, p.x, p.y, null);  //Hien thi anh vao vi tri xac dinh       }  }
    Trong Activity

    Mã:
    public class MapOverlayActivity extends MapActivity {     @Override       public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         MapView map = new MapView(this, "0bDScE0zqnZNbX1T_hj9ROthzIiUgXrGuy9F4JA");         map.setEnabled(true);         map.setClickable(true);         setContentView(map);              // Tao overlay tren man hinh ban do         Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon);         ThanhTMOverlay overlay = new ThanhTMOverlay(bmp, new GeoPoint(35656000, 139700000));         List<Overlay> list = map.getOverlays();         list.add(overlay);       }            @Override       protected boolean isRouteDisplayed() {         return false;       } }
    AndroidManifest.xml
    ?



    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="jp.thanhtm"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="3" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MapOverlayActivity"
    android:label="@string/app_name">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <uses-library android:name="com.google.android.maps" />

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



    Kết quả chạy như sau:
    [​IMG]
    Như vậy, icon đã được hiển thị tại vị trí của tọa độ tôi đặt trong chương trình.
    Trong bài sau, tôi sẽ trình bày cách tự động xác định vị trí của user trên MapView.
     
    Đang tải...
  2. bangphihung New Member

    bangphihung

    Tham gia ngày:
    5/4/13
    Bài viết:
    3
    Đã được thích:
    0
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Nơi ở:
    Hai Phong, Vietnam
    anh co the gui em loat bai ve google map cua nah khong ah, em dang can de hoc ah, cam on anh
     

Chia sẻ trang này