แล้วนำมาประยุกต์ปักเป็น 2 หมุด
ในการใช้งาน Google Map บน Android นั้น เราจะต้องขอ Android Map API key ก่อน จึงจะสามารถสร้าง application ที่เรียกใช้ map ได้
ขั้นตอนที่ 1 - get ค่า MD5 ของเครื่องเรา
ที่ C:\Users\acer\.android ให้สั่ง
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
จะขึ้นข้อความว่า
ที่ C:\Users\acer\.android ให้สั่ง
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android
จะขึ้นข้อความว่า
androiddebugkey, De 1, 2010, PrivateKeyEntry,
Certificate fingerprint (MD5): 10:E5:6D:B7:E0:8B:FB:90:A0:A0:33:4B:4C:C1:A6:2B
ขั้นตอนที่ 2 - sign up for key
ไปที่เว็บ http://code.google.com/intl/th-TH/android/maps-api-signup.html แล้วจะได้ Android Maps API key เช่น 0D8Ku-VRcQHpvam2-De5gZ39W7ZTTR-f_ujKhPW
<< โครงสร้างของ folder
ขั้นตอนที่ 3 - เขียน MyMapView.java, HelloItemizedOverlay.java และ main.xml ดังนี้
MyMapView.java
package ubu.example.MyMapView;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.LinearLayout;
public class MyMapView extends MapActivity {
LinearLayout linearLayout;
MapView mapView;
MapController mapController;
List<Overlay> mapOverlays;
Drawable drawable;
HelloItemizedOverlay itemizedOverlay;
GeoPoint geoPoint;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
// 1st marker: red
//
drawable = this.getResources().getDrawable(R.drawable.markred);
itemizedOverlay = new HelloItemizedOverlay(drawable);
GeoPoint point = new GeoPoint(15277572, 104799721);
OverlayItem overlayitem = new OverlayItem(point, "title1", "msg1");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
// 2nd marker: orange
//
drawable = this.getResources().getDrawable(R.drawable.markorange);
itemizedOverlay = new HelloItemizedOverlay(drawable);
GeoPoint point2 = new GeoPoint(12277572, 84799721);
OverlayItem overlayitem2 = new OverlayItem(point2, "title2", "msg2");
itemizedOverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedOverlay);
// กำหนดตำแหน่งเริ่มต้นในการแสดง map
//
geoPoint = new GeoPoint(15277572, 104799721);
mapController = mapView.getController();
mapController.animateTo(geoPoint);
mapController.setZoom(17);
mapView.invalidate();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.LinearLayout;
public class MyMapView extends MapActivity {
LinearLayout linearLayout;
MapView mapView;
MapController mapController;
List<Overlay> mapOverlays;
Drawable drawable;
HelloItemizedOverlay itemizedOverlay;
GeoPoint geoPoint;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapOverlays = mapView.getOverlays();
// 1st marker: red
//
drawable = this.getResources().getDrawable(R.drawable.markred);
itemizedOverlay = new HelloItemizedOverlay(drawable);
GeoPoint point = new GeoPoint(15277572, 104799721);
OverlayItem overlayitem = new OverlayItem(point, "title1", "msg1");
itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
// 2nd marker: orange
//
drawable = this.getResources().getDrawable(R.drawable.markorange);
itemizedOverlay = new HelloItemizedOverlay(drawable);
GeoPoint point2 = new GeoPoint(12277572, 84799721);
OverlayItem overlayitem2 = new OverlayItem(point2, "title2", "msg2");
itemizedOverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedOverlay);
// กำหนดตำแหน่งเริ่มต้นในการแสดง map
//
geoPoint = new GeoPoint(15277572, 104799721);
mapController = mapView.getController();
mapController.animateTo(geoPoint);
mapController.setZoom(17);
mapView.invalidate();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
HelloItemizedOverlay
package ubu.example.MyMapView;
import java.util.ArrayList;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public HelloItemizedOverlay(Drawable arg0) {
//super(arg0);
super(boundCenterBottom(arg0));
// TODO Auto-generated constructor stub
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
}
import java.util.ArrayList;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public HelloItemizedOverlay(Drawable arg0) {
//super(arg0);
super(boundCenterBottom(arg0));
// TODO Auto-generated constructor stub
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0D8Ku-VRcQHpvam2-De5gZ39W7ZTTR-f_ujKhPW"
/>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0D8Ku-VRcQHpvam2-De5gZ39W7ZTTR-f_ujKhPW"
/>
</RelativeLayout>


ไม่มีความคิดเห็น:
แสดงความคิดเห็น