百度地圖(BaiduMap)定位工具類封裝和使用
(轉載請註明出處哦)本篇部落格主要是提供思路,具體的百度地圖許可權和apikey配置不敘述,地圖定位工具類如下
/**
* @ClassName: LocationHelper
* @author: hewei
* @version: v1.0
*/
public class LocationHelper {
private LocationCallBackcallBack;
private static LocationHelperhelper;
private LocationClientlocationClient;
private BDLocationListenerlocationListener = new MyBDLocationListener();
private LocationHelper() {
//第一步例項化定位核心類
locationClient = newLocationClient(BaseApp.getInstance(), getLocOption());
//第二步設定位置變化回撥監聽
locationClient.registerLocationListener(locationListener);
}
public static LocationHelpergetInstance() {
if (helper == null) {
helper = newLocationHelper();
}
return helper;
}
public void start() {
// 第三步開始定位
locationClient.start();
}
//一般會在Activity的OnDestroy方法呼叫
public void stop() {
if (locationClient !=null) {
locationClient.unRegisterLocationListener(locationListener);
locationClient.stop();
locationClient = null;
}
}
private LocationClientOptiongetLocOption() {
LocationClientOptionoption = new LocationClientOption();
option.setAddrType("all");
//設定定位座標系
option.setCoorType("bd09ll");
//重新定位時間間隔
//option.setScanSpan(60*1000);
//設定是否開啟gps
option.setOpenGps(true);
//設定定位模式
option.setLocationNotify(true);
//是否需要poi結果
option.setPoiDistance(1000);
option.setPoiExtraInfo(true);
return option;
}
private classMyBDLocationListener implements BDLocationListener {
@Override
public voidonReceiveLocation(BDLocation bdLocation) {
if (callBack != null&&bdLocation!=null){
callBack.callBack(bdLocation.getAddrStr(),bdLocation.getStreetNumber(),bdLocation.getLatitude(),bdLocation.getLongitude(),bdLocation.getDistrict(),bdLocation.getStreet(),bdLocation.getCity(),bdLocation.getProvince());
}
//多次定位必須要呼叫stop方法
locationClient.stop();
}
@Override
public voidonReceivePoi(BDLocation arg0) {
}
}
public interfaceLocationCallBack {
void callBack(Stringaddr,String streetnumber ,double lat, double lng, String district ,Stringstreet,String city,String province);
}
public LocationCallBackgetCallBack() {
return callBack;
}
public void setCallBack(LocationCallBackcallBack) {
this.callBack = callBack;
}
}
那我們如何呼叫定位工具呢,利用介面回撥傳遞資料,覆蓋物等功能請自行新增,具體如下
public class HomePageActivity extends BaseActivity implements LocationCallBack{
private BaiduMap baiduMap;
private LocationHelperhelper;
private MapView mapView;
private TextView addrtext;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homepage_hasmenukey_layout);
mapView=(MapView)findViewById(R.id.bmapView);
addrtext=(TextView)findViewById(R.id.addrtext);
setBaiduMap();
startLocation();
}
//百度地圖設定
public void setBaiduMap(){
//去掉百度地圖自帶的放大縮小按鈕,以及左下角的小圖示
mapView.showZoomControls(false);
mapView.showScaleControl(false);
for (int i = 0; i <mapView.getChildCount(); i++) {
View child =mapView.getChildAt(i);
if (child instanceofImageView) {
child.setVisibility(View.INVISIBLE);
break;
}
}
baiduMap=mapView.getMap();
baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
baiduMap.setMyLocationEnabled(true);
baiduMap.setOnMapTouchListener(this);
baiduMap.setOnMapLoadedCallback(this);
}
//定位返回的資料
@Override
public void callBack(Stringaddr, String streetnumber, double lat, double lng, String district,
String street, Stringcity,String province) {
addrtext.setText(addr);
}
//開啟定位
public void startLocation(){
helper=LocationHelper.getInstance();
helper.setCallBack(this);
helper.start();
}
@Override
public void onDestroy(){
helper.stop();
baiduMap.setMyLocationEnabled(false);
mapView.onDestroy();
mapView=null;
super.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
}
本篇部落格主要提供的是思路,喜歡的朋友可以關注和收藏哦
相關推薦
百度地圖(BaiduMap)定位工具類封裝和使用
(轉載請註明出處哦)本篇部落格主要是提供思路,具體的百度地圖許可權和apikey配置不敘述,地圖定位工具類如下 /** * @ClassName: LocationHelper * @author: hewei * @version: v1.0 */ public
百度地圖BaiduMap--學習(二)------定位到自己的位置之沒反應
過了開始的那一關,總以為就好一點,可惜人在江湖飄啊,怎能不挨刀,動不動就上刀山下油鍋。。。。 今天的是定位到自己的位置,本來我以為,這塊對著程式碼敲敲程式碼就能輕鬆搞定,結果還是掉水溝裡了。。 貼程式碼吧直接: 其餘的都不變 MainActivity.java packa
網頁中利用百度地圖實現定位省(直轄市)市(區)
ren location .get point asc sca set map char <!doctype html> <head> <meta http-equiv="Content-Type" content="text/h
H5跳轉到百度地圖並定位
獲取 targe mark appname xpl ofo div 忽略 視野 找了半天的JS api,發現沒有,後來發現這個叫 url api,讓我好找。 官方文檔: http://lbsyun.baidu.com/index.php?title=uri/api/web
百度地圖API定位+顯示位置
col mar 位置 百度地圖api fail true acc ntp 引入 1. 先在需要嵌入地圖的頁面引入map.js <script src="http://api.map.baidu.com/api?v=2.0&ak=你的秘鑰"></s
AngularJS進階(十九)在AngularJS應用中整合百度地圖實現定位功能
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
android百度地圖基礎定位不用開啟許可權也可以獲取經緯度成功?什麼鬼
最近專案中需要使用百度地圖sdk,發現一個問題,手機未開啟地圖定位許可權,在地圖定位監聽裡面竟然可以返回狀態碼為161的正確定位返回,是不是很神奇。 測試了百度demo,把定位許可權關閉,也是可以定位成功的。看來確實不需要定位許可權,就可以獲取定位資訊呀。 這就讓我暈了,那這個許可權什麼時候
百度地圖切圖工具下載和百度地圖切圖工具使用方法
百度地圖切圖很麻煩,雖然百度地圖提供了api,百度地圖API當前預設支援兩種地圖型別《map type》:普通圖和三維圖,如果您想自定義地圖,那麼這個時候就必須切圖了。。。下今天小編給大家分享一下本篇文章《百度地圖切圖工具下載和及百度地圖切圖工具用法》! 我們先從切圖工具的使用開始,接著再分析該
Android百度地圖開發定位和路線導航
在寫之前要先加入百度地圖sdk的jar包從百度地圖開發者官網上就能下載 百度地圖sdk下載 官網(可翻牆選擇):http://developer.android.com/sdk/index.html 不可翻牆選擇:http://www.androiddevtools.cn/ 而其中用
百度地圖獲取定位 React Native
獲取金鑰:http://lbsyun.baidu.com/apiconsole/key 去百度地圖申請應用; 百度地圖api(ak值申請後可以獲得,安全碼在申請應用點選設定後可以檢視) BaiduMap_URL =‘https://api.map.baid
Vue:百度地圖API 定位 地點檢索
一個全棧向前端的退化過程。 (咳~抱怨一句) 高德--API清晰,就是定位可能差了那麼點! 百度--國內較好支援國外定位 搜尋的平臺。(不過需要申請配額) google -- 需要翻牆,沒花錢配額之前給你一次呼叫機會, 使用需求因個
百度地圖api定位,根據經緯度顯示當前城市名
當前城市:<span id="pro_num">鄭州</span> <div id="allmap"></div> <script type="text/javascript" src="http://api.map.baidu.com/
呼叫百度地圖API定位位置
以下程式碼是百度開發示例程式碼: <html> <head> <meta http-equiv="Content-Type" content="text/html; charse
調用百度地圖API定位位置
nbsp stat toc tle over enable city user 密鑰 以下代碼是百度開發示例代碼: <html> <head> <meta http-equiv="Content-Type" content="text
百度地圖拾取座標工具-toolfk程式設計師線上工具
本文要推薦的[ToolFk]是一款程式設計師經常使用的線上免費測試工具箱,ToolFk 特色是專注於程式設計師日常的開發工具,不用安裝任何軟體,只要把內容貼上按一個執行按鈕,就能獲取到想要的內容結果。ToolFk還支援 BarCode條形碼線上生
ionic使用百度地圖實時定位並匯入標記
最近遇到前端需要實現地圖的功能,其實呼叫地圖的例子網上有好多,這邊介紹一下我們如何通過ionic框架在前端呼叫百度地圖。 首先我們需要在src目錄下的index.html檔案中引入百度地圖,在這之前請申請百度地圖金鑰(金鑰在百度地圖官網申請) <script
百度地圖的定位
百度地圖的展示,及詳細配置 官方Api 開始搭建環境 1.下載SDK 匯入Jar包,這裡分為2塊,第一塊是畫圈的jar包,需要小奶瓶,第二部分是檔案直接賦值即可 **清單檔案註冊** <application ..... <!
百度地圖自定義工具欄
function gongju() { // 自定義控制元件 function ZoomControl() { this.defaultAnchor
百度地圖之定位功能,註冊祕鑰
1.1 百度地圖定位GPS + WIFI + 基站1. GPS定位:是美國軍方提供全球定位系統。5~15米 北斗:中國研發定位系統。目前最先進的定位系統,精度能達到幾釐米 格洛納斯:俄羅斯定位系統,已交於北斗維護。