Google位置服務模板

2021-06-12 15:06:23 字數 2457 閱讀 4861

locationmanager locationmanager = (locationmanager)this.getsystemservice(context.location_service); 

//定義乙個***來響應位置的更新

locationlistener locationlistener = new locationlistener()

public void onstatuschanged(string provider, int status, bundle extras)

public void onproviderenabled(string provider)

public void onproviderdisabled(string provider)

}; //註冊***接收位置資訊

locationprovider locationprovider = locationmanager.network_provider;

//locationprovider locationprovider=locationmanager.gps_provider;

locationmanager.requestlocationupdates(locationprovider, 0, 0, locationlistener);

//停止監聽

locationmanager.removeupdates(locationlistener);

//利用快取的位置資訊

location lastknowlocation = locationmanager.getlastknowlocation(locationprovider);

//維護乙個最佳估測量的完整邏輯

private static final int two_minutes = 1000 * 60 * 2;

protected boolean isbetterlocation(location location, location currentbestlocation)

long timedelta = location.gettime() - currentbestlocation.gettime();

boolean issignificantlynewer = timedelta > two_minutes;

boolean issignificantlyolder = timedelta < -two_minutes;

boolean isnewer = timedelta > 0;

if(issignificantlynewer)

else if(issignificantlyolder)

int accuracydelta = (int)(location.getaccuracy() - currentbestlocation.getaccuracy());

boolean islessaccurate = accuracydelta > 0;

boolean ismoreaccurate = accuracydelta < 0;

boolean issignificantlylessaccurate = accuracydelta > 200;

boolean isfromsameprovider = issameprovider(location.getprovider(), currentbestlocation.getprovider());

if(ismoreaccurate)

else if(isnewer && !islessaccurate)

else if(isnewer && !issignificantlylessaccurate && isfromsameprovider)

return false;

} private boolean issameprovider(string provider1, string provider2)

return provider1.equals(provider2);

}//選擇合適的位置服務提供者

criteria criteria = new criteria();

//經度要求

criteria.setaccuracy(criteria.accuracy_fine);

criteria.setaltituderequired(false);

criteria.setbearingrequired(false);

criteria.setcostallowed(false);

criteria.setpowerrequirement(criteria.power_low);

//取得效果最好的criteria

string provider = mlocationmanager.getbestprovider(criteria, true);

LBS基於BREW的位置服務

移動位置服務 lbs location based service 是利用一定的技術手段通過流動網路獲取移動終端使用者的位置資訊 經緯度座標 在電子地圖平台的支援下,為使用者提供相應服務的一種增值業務。它是移動網際網路和定位服務的融合業務。移動位置服務的具體應用可大致分為 公共安全業務 跟蹤業務 基...

LBS基於BREW的位置服務

移動位置服務 lbs location based service 是利用一定的技術手段通過流動網路獲取移動終端使用者的位置資訊 經緯度座標 在電子地圖平台的支援下,為使用者提供相應服務的一種增值業務。它是移動網際網路和定位服務的融合業務。移動位置服務的具體應用可大致分為 公共安全業務 跟蹤業務 基...

一種共享位置服務的設想

共享位置服務是指有一定合作關係的團隊,內部每個成員向其它成員提供自己的地理位置資訊,以達到合作配合的作用。乙個最簡單的例子,我們在玩一些網路遊戲 例如魔獸 之類的時候,一般會有個小地圖來顯示隊友或敵方所在的位置,這些共享的位置資訊可以幫助我們為接下來的戰略做好計畫和準備。而在真實生活中,同樣也有很多...