
Tentu saja harapannya dengan Klik atau Tap langsung di Google Map akan bisa mendapatkan Latitide dan Longitude nya. Pada Google Map Android Versi 2 Cukup Mudah, Kita Bahas Lain Kali pada Artikel yang Lain. Kali ini kita buat Aplikasi tersebut pada Google Map Android Versi 1 dahulu.
Caranya, buat aplikasi Android dengan Platform Google API seperti biasa. Buat Main Activity seperti berikut :
package com.amijaya.androidgooglemaptapgetlatlng;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
//http://cariprogram.blogspot.com
//nuramijaya@gmail.com
public class MainActivity extends MapActivity {
MapView mapView;
long startTime;
long endTime;
/** 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);
double lat = -7.782939;
double lng = 110.36705000000006;
GeoPoint point = new GeoPoint((int) (lat *1E6),(int) (lng * 1E6));
mapView.getController().animateTo(point);
mapView.getController().setZoom(15);
mapView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
/*//jika ingin touch saja lgs muncul, bukan long touch (long press)
GeoPoint p = null;
if (event.getAction() == MotionEvent.ACTION_UP) {
p = mapView.getProjection().fromPixels((int) event.getX(),
(int) event.getY());
//mapBackButton.setText(p.getLatitudeE6() / 1E6 + ","
// + p.getLongitudeE6() / 1E6 + "Action is : "
// + event.getAction());
Toast.makeText(
getBaseContext(),
p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6()
/ 1E6 + "Action is : " + event.getAction(),
Toast.LENGTH_SHORT).show();
return true;
}
*/
if(event.getAction() == MotionEvent.ACTION_DOWN){
//record the start time
startTime = event.getEventTime();
}else if(event.getAction() == MotionEvent.ACTION_UP){
//record the end time
endTime = event.getEventTime();
}
//verify
if(endTime - startTime > 1000){
//we have a 1000ms duration touch
//propagate your own event
GeoPoint p = null;
if (event.getAction() == MotionEvent.ACTION_UP) {
p = mapView.getProjection().fromPixels((int) event.getX(),
(int) event.getY());
Toast.makeText(
getBaseContext(),
p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6()
/ 1E6 + "Action is : " + event.getAction(),
Toast.LENGTH_SHORT).show();
return true;
}
return true; //notify that you handled this event (do not propagate)
}
return false;
}
});
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
/*//seharusnya betul tapi tidak jalan
*
@Override
public boolean onTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_DOWN){
//record the start time
startTime = ev.getEventTime();
}else if(ev.getAction() == MotionEvent.ACTION_UP){
//record the end time
endTime = ev.getEventTime();
}
//verify
if(endTime - startTime > 1000){
//we have a 1000ms duration touch
//propagate your own event
GeoPoint p = null;
p = mapView.getProjection().fromPixels((int) ev.getX(),
(int) ev.getY());
Toast.makeText(
getBaseContext(),
p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6()
/ 1E6 + " Event : " + ev.getAction(),
Toast.LENGTH_LONG).show();
return true; //notify that you handled this event (do not propagate)
}
return false;
}
*/
}
Kemudian buat Halaman Utama main.xml seperti ini :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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:enabled="true"
android:clickable="true"
android:apiKey="0q1s--GANTI-DGN-API-KEY-ANDA--EpA"
/>
</RelativeLayout>
Jangan lupa AndroidManifest disesuaikan agar bisa memanggil library Google Map dan Memiliki Permission INTERNET seperti ini :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.amijaya.androidgooglemaptapgetlatlng"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
<activity android:name=".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>
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
Hasilnya ketika diklik pada Peta :
Project Selengkapnya silakan Didownload Disini. Pada Google Drive Klik File-Download
Semoga Bermanfaat.