Android端地图,百度地图学习(II)-Android端的定位
哎,經歷了小編的最近時間的研究,我的百度定位終于成功啦,剎那間覺得自己萌萌噠啦(~ ̄▽ ̄)~
話不多說,直接進入正題:
首先,我們來看一下效果:
【分析定位原理】
【編碼分析】
2)增加布局信息:此處只有一個按鈕和一個文本信息
3)編寫java代碼:
public class MainActivity extends Activity {
private Button btn_lbs=null;
private TextView show_lbs=null;
private LocationClient locationClient=null;
private static final int UPDATE_TIME=5000; //更新頻率
private static int LOCATION_COUNTS=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_lbs=(Button)findViewById(R.id.btn_lbs);
show_lbs=(TextView)findViewById(R.id.show_lbs);
locationClient =new LocationClient(this);
//設置定位條件
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);//設置高精度定位定位模式
option.setCoorType("bd09ll");//設置百度經緯度坐標系格式
option.setScanSpan(UPDATE_TIME);//設置發起定位請求的間隔時間為1000ms
option.setIsNeedAddress(true);//反編譯獲得具體位置,只有網絡定位才可以
locationClient.setLocOption(option); //講option的初始化信息添加到客戶端
//注冊位置的監聽事件
locationClient.registerLocationListener(new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
// 定位回調信息
if(location==null){
return;
}
StringBuffer sb=new StringBuffer();
sb.append("Time : ");
sb.append(location.getTime());
sb.append("\nError code : ");
sb.append(location.getLocType()); //獲取定位類型
sb.append("\nLatitude : ");
sb.append(location.getLatitude()); // 獲取緯度坐標
sb.append("\nLontitude : ");
sb.append(location.getLongitude()); //獲取精度坐標
sb.append("\nRadius : ");
sb.append(location.getRadius()); //獲取定位精度
if (location.getLocType() == BDLocation.TypeGpsLocation){
sb.append("\nSpeed : ");
sb.append(location.getSpeed()); //獲取速度,僅gps定位結果時有速度信息
sb.append("\nSatellite : ");
sb.append(location.getSatelliteNumber());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
sb.append("\nAddress : ");
sb.append(location.getAddrStr()); //獲取詳細地址信息
}
LOCATION_COUNTS ++;
sb.append("\n檢查位置更新次數:");
sb.append(String.valueOf(LOCATION_COUNTS));
show_lbs.setText(sb.toString());
}
});
btn_lbs.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(locationClient==null){
return;
}
if(locationClient.isStarted()){
btn_lbs.setText("開啟定位");
locationClient.stop();
}else{
btn_lbs.setText("關閉定位");
locationClient.start();
/*
*當所設的整數值大于等于1000(ms)時,定位SDK內部使用定時定位模式。
*調用requestLocation( )后,每隔設定的時間,定位SDK就會進行一次定位。
*如果定位SDK根據定位依據發現位置沒有發生變化,就不會發起網絡請求,
*返回上一次定位的結果;如果發現位置改變,就進行網絡請求進行定位,得到新的定位結果。
*定時定位時,調用一次requestLocation,會定時監聽到定位結果。
*/
locationClient.requestLocation();
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
if(locationClient!=null&&locationClient.isStarted())
{
locationClient.stop();
locationClient=null;
}
}
}
【總結】
由于小編比較笨拙,所以研究了好長一段時間才解決,以上分析屬于自己的理解
LocationClient屬于客戶端,客戶端通過設置位置的監聽事件從而實現位置的獲得,切忌注意一點,當程序結束的時候,你的定位的客戶端:LocationClient應該是處于關閉狀態的
【附錄】
C#的百度地圖開發(四)前端顯示與定位
原文:C#的百度地圖開發(四)前端顯示與定位 有了這些定位信息,那要如何在前端的頁面上顯示出來呢?這需要用到百度地圖的JavaScript的API.下面是示例代碼. 前端代碼
使用百度地圖API進行Android地圖應用開發(Eclipse)
隨著基于位置的服務的興起,地圖類App呈現爆發趨勢.隨著而來的是地圖供應商開放大量的API.供開發人員開發基于PC或者移動端的應用程序. 如今我們研究使用百度地圖SDK進行Android項目的開發. ...
百度地圖API 顯示區域邊界及地名定位
百度地圖API 顯示區域邊界及地名定位 這個定位一共用了兩個方法組成 一個是定位繪制區域邊界線,另一個是地名定位 原理: 當用戶輸入省.市.縣.區這種大地名時,我們要定位用戶輸入的這個位置,并顯示輪廓 ...
百度地圖SDK for Android【Demo興趣點搜索】
百度地圖SDK為開發人員提供了便捷的檢索服務. 今天我將為大家介紹Poi檢索相關的內容. 首先,我們要構建一個最主要的地圖應用.詳細介紹請參考:百度地圖SDK for Android[ ...
百度地圖學習(Ⅰ)-Android端地圖的顯示及簡單應用
ps:(1.地圖應用一定要在真機測試: 2.Design By:Android Stdio: 3.百度地圖官方參考鏈接(http://developer.baidu.com/map/index.php ...
[android] 百度地圖開發 (兩).所在地的城市定位和城市POI搜索
一個. 百度地圖城市位置和POI搜索知識 ? ? ? 上一篇文章"百度地圖開發(一)"中講述了怎樣申請百度APIKey及解決顯示空白網格的問題.該篇文章主要講述怎樣定位城市位置.定 ...
Android Studio下加入百度地圖的使用(二)——定位服務
上一章(http://www.cnblogs.com/jerehedu/p/4891216.html)中我們已經完成了環境的搭建,這一章我們來研究一下如何使用. 第一步:在xml文件中加入以下權限 & ...
【百度地圖學習-一】初始化以及TextOverlay
一.百度地圖的初始化 主要用到三個類: 1.BMapManager:使用地圖sdk前需先初始化BMapManager.BMapManager是全局的,可為多個MapView共用,它需要地圖模塊創建前創 ...
百度地圖SDK for Android【檢索服務】
1搜索服務 百度地圖SDK集成搜索服務包括:位置檢索.周邊檢索.范圍檢索.公交檢索.駕乘檢索.步行檢索,通過初始化MKSearch類,注冊搜索結果的監聽對象MKSearchListener,實現異步搜 ...
隨機推薦
跟我一起學WCF(4)——第一個WCF程序
一.引言 前面幾篇文章分享了.NET 平臺下其他幾種分布式技術,然而前面幾種分布式技術專注于某一特定的領域,并且具有不同編程接口,這使得開發人員需要掌握多個API的使用.基于這樣的原因,微軟在.NET ...
【同行說技術】iOS程序員從小白到大神必讀資料匯總
在文章里面介紹了很多iOS入門學習的資料,今天小編就發幾篇技術進階的文章,快來看看吧! 一.iOS后臺模式開發指南 這個教程會教你在什么時候怎 ...
在ascx中調用另一個ascx的寫法
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
cf C. Cupboard and Balloons
http://codeforces.com/contest/342/problem/C #include #include #includ ...
linux命令:rm
刪文件要一個個回答y,誰有好辦法自動刪除? rm -rf 用rm遞歸刪除目錄下面的所有.o文件: find . -name "*.o" ?| xargs rm -f :
UNIX環境高級編程——system函數
system函數 功能:調用fork產生子進程,由子進程來調用:/bin/sh -c command來執行參數command所代表的命令,阻塞當前進程直到command命 令執行完畢. int sys ...
Android Aop日志
Android在許多情況下需要知道一些方法的耗時,然后對與這些耗時進行一些處理和優化.當然我們可以在方法的開頭和結尾分別來打一行日志來解決這個問題.但是這個方式侵入性強,而且比較難以修改和刪除這些日志 ...
Django的Hello World
Django安裝 yum -y install python #安裝python yum -y install epel-release #安裝擴展源 yum -y install python-pi ...
Zabbix Server 自帶模板監控更加靈活MySQL數據庫
Zabbix Server 自帶模板監控更加靈活MySQL數據庫 作者:尹正杰 版權聲明:原創作品,謝絕轉載!否則將追究法律責任.? 一.zabbix-agent端配置 1>.修改zabbix的 ...
[Leetcode]雙項隊列解決滑動窗口最大值難題
這道題是從優先隊列的難題里面找到的一個題目.可是解法并不是優先隊列,而是雙項隊列deque 其實只要知道思路,這一道題直接寫沒有太大的問題.我們看看題 給定一個數組 nums,有一個大小為 k 的滑動 ...
總結
以上是生活随笔為你收集整理的Android端地图,百度地图学习(II)-Android端的定位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 干货 |VALSE 2019总结 --P
- 下一篇: 快速AI自动抠图,小花儿人工智能