【 Android 】Google Map V3 使用 (二) 定位
繼上篇步驟完成後,已經可以看到地圖,只是位置並不是想像中是在目前裝置的位置,是因為沒有定位到目前裝置的位置,要定位的話則必需先取得目前位置的經緯度再告知Google Map,使它可以移動到該經緯度,步驟如下:
一、先產生定位相關元件:
先新增定位需要的權限
位移更新最小距離(單位為公尺) : 0
定位監聽物件實體 : mll
三、完成上列步驟後就可以在定位監聽實體物件取得經緯度
經由以上操作即可以定位到目前裝置所在的位置。
一、先產生定位相關元件:
先新增定位需要的權限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
再產生相關元件
public static LocationManager lmgr; //取得location service
public static MyLocationListener mll; //這是位罝改變時的監聽事件
二、取得location service之後並新增監聽事件和建立service:
lmgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mll = new MyLocationListener();
lmgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1100, 0, mll);
//上述是開啟網路定位服務
lmgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,1100, 0, mll);
//上述是開啟gps定位服務
上述兩個方法所帶入的參數如下:
定位提供者: LocationManager.NETWORK_PROVIDER / LocationManager.GPS_PROVIDER
位移更新最小時間(單位為千分之一秒) : 1100(1.1秒)位移更新最小距離(單位為公尺) : 0
定位監聽物件實體 : mll
三、完成上列步驟後就可以在定位監聽實體物件取得經緯度
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {
nowLatget = location.getLatitude(); //緯度
nowLngget = location.getLongitude(); //經度
mapView.loadUrl("javascript:moveTo(" + nowLatget + "," + nowLngget""')");
//javascript裡移動的動作
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}
可以在google map的javascript裡實作一個移動的動作並將目前的經緯度帶入就可以移動到目前的位置。
留言
張貼留言