GPS定位 菜鳥級別的

最近在搞點擊按鈕實現GPS定位的 新手能夠看一下 避免一些彎路 java

imgbtn4 = (ImageView)findViewById(R.id.cd4);
    
    imgbtn4.setOnClickListener(new Button.OnClickListener() {
    	
    	//註冊一個LoacationManager
    	LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        public void onClick(View arg0) {
			// TODO Auto-generated method stub
        	//註冊一個週期性的位置更新
        	Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        	WithNewLocation(location);
        	
        	locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,   
        			 1000, 0, locationListener);
		}
    });

將定位單獨設置成一個函數寫OnCreat 的外邊 git

public void WithNewLocation(Location location)
{
	if(location==null)
	{
		return ;
	}
	 //取得經度和緯度  
    Double geoLat=location.getLatitude()*1E6;//這兒 將Double換成double會報錯  
    Double geoLng=location.getLongitude()*1E6;  
    //將其轉換爲int型  
    GeoPoint point=new GeoPoint(geoLat.intValue(),geoLng.intValue());  
    mMapController.animateTo(point);  
}

監聽器的實現
private final LocationListener locationListener = new LocationListener() {
	// //當座標改變時觸發此函數,若是Provider傳進相同的座標,它就不會被觸發
    public void onLocationChanged(Location location) {   
        // log it when the location changes   
        if (location != null) {   
            Log.i("SuperMap", "Location changed : Lat: "  
              + location.getLatitude() + " Lng: "  
              + location.getLongitude());   
        }   
    }   
  
    public void onProviderDisabled(String provider) {   
    // Provider被disable時觸發此函數,好比GPS被關閉   
    }   
  
    public void onProviderEnabled(String provider) {   
    //  Provider被enable時觸發此函數,好比GPS被打開   
    }   
  
    public void onStatusChanged(String provider, int status, Bundle extras) {   
    // Provider的轉態在可用、暫時不可用和無服務三個狀態直接切換時觸發此函數   
    }   
};
相關文章
相關標籤/搜索