Android Google Map : Get Current Location (Latitude, Longitude) |
Android Google Map : Get Current Location (Latitude, Longitude) ในหัวข้อนี้จะเป็นการเขียน Android App กับ Google Map เพื่ออ่านตำแหน่งปัจจุบัน ของอปุกรณ์ที่กำลังเชื่อมต่อกับ App โดยค่าที่ได้จะเป็น Latitude และ Longitude ซึ่งเราสามารถนำค่านี้ไปอ้างอิงกับตำแหน่งบน Google Map ได้ เช่น การปักหมุด หรือค้นหาเส้นทางไปยัง Location ต่าง ๆ เป็นต้น
Android Google Map : Get Current Location (Latitude, Longitude)
สำหรับตัวอย่างและ Code นี้รองรับการเขียนทั้งบนโปรแกรม Eclipse และ Android Studio
ใน AndroidManifest.xml เพิ่ม Permission ดังนี้
<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.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
ในการอ้างอิงหรือค้นหาตำแหน่งป้จจุบัน เราจะใช้ชุดคำสั่งของคลาส locationManager
locationManager Syntax
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
@Override
public void onLocationChanged(Location location) {
//location.getLatitude()
//location.getLongitude()
}
@Override
public void onProviderDisabled(String provider) {
// Log.d("Latitude","disable");
}
@Override
public void onProviderEnabled(String provider) {
// Log.d("Latitude","enable");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Log.d("Latitude","status");
}
ในการใช้ locationManager เราสามารถอ่านค่า State ต่าง ๆ ได้จาก method : onLocationChanged ซึ่งใน method นี้จะมีการเปลี่ยนแปลงค่า Latitude และ Longitude เมื่อต่ำแหน่งเราได้เปลี่ยนแปลง
Example 1 : ตัวอย่างการเขียน Android App เพื่ออ่าน Latitude และ Longitude ต่ำแหน่งปัจจุบัน
activity_main.xml
<TableLayout 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" >
<TextView
android:id="@+id/lblLat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lat" />
<TextView
android:id="@+id/lblLon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lon" />
</TableLayout>
MainActivity.java
package com.myapp;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.widget.TextView;
public class MainActivity extends FragmentActivity implements LocationListener {
protected LocationManager locationManager;
protected LocationListener locationListener;
TextView lblLat;
TextView lblLon;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lblLat = (TextView) findViewById(R.id.lblLat);
lblLon = (TextView) findViewById(R.id.lblLon);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
lblLat.setText("Latitude : " + location.getLatitude());
lblLon.setText("Longitude : " + location.getLongitude());
}
@Override
public void onProviderDisabled(String provider) {
// Log.d("Latitude","disable");
}
@Override
public void onProviderEnabled(String provider) {
// Log.d("Latitude","enable");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Log.d("Latitude","status");
}
}
Screenshot
แสดงค่า Latitude และ Longitude จากตำแหน่งปัจจุบันของอุปกรณ์
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-11-21 22:50:30 /
2015-11-23 14:30:20 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|