百度地圖定位后數(shù)據(jù)為null

1. 概述

這里記錄下自己項目中的,首頁百度地圖獲取定位后無法獲取定位后的數(shù)據(jù)。

場景:
在首頁HomeFragment中棒呛,一開始進入界面后需要獲取當(dāng)前位置,在本地接口的http環(huán)境下定位成功后域携,可以獲取到當(dāng)前位置的city簇秒、address及經(jīng)緯度等信息,但是切換到線上的 https環(huán)境后秀鞭,然后再次在首頁獲取定位趋观,這個時候定位后扛禽,貌似只能獲取到經(jīng)緯度,其余的 city皱坛、地址等所有信息全是 null编曼,自己也不知道啥原因,感覺和https環(huán)境沒關(guān)系剩辟,自己處理方式是:定位成功后掐场,獲取到經(jīng)緯度,采用反編碼抹沪,根據(jù)經(jīng)緯度獲取地址信息刻肄;

哪位知道啥原因的可以給我留言,自己不太清楚這個啥原因融欧;

2. 代碼如下

@Override
    public void onResume() {
        super.onResume();
        initLocationOption() ;
    }

private void initLocationOption() {
        //定位服務(wù)的客戶端敏弃。宿主程序在客戶端聲明此類,并調(diào)用噪馏,目前只支持在主線程中啟動
        LocationClient locationClient = new LocationClient(BaseApplication.getContext());
        //聲明LocationClient類實例并配置定位參數(shù)
        LocationClientOption locationOption = new LocationClientOption();
        MyLocationListener myLocationListener = new MyLocationListener();
        //注冊監(jiān)聽函數(shù)
        locationClient.registerLocationListener(myLocationListener);
        //可選麦到,默認(rèn)高精度,設(shè)置定位模式欠肾,高精度瓶颠,低功耗,僅設(shè)備
        locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
        //可選刺桃,默認(rèn)gcj02粹淋,設(shè)置返回的定位結(jié)果坐標(biāo)系,如果配合百度地圖使用瑟慈,建議設(shè)置為bd09ll;
        locationOption.setCoorType("gcj02");
        //可選桃移,默認(rèn)0,即僅定位一次葛碧,設(shè)置發(fā)起連續(xù)定位請求的間隔需要大于等于1000ms才是有效的
        locationOption.setScanSpan(1000);
        //可選借杰,設(shè)置是否需要地址信息,默認(rèn)不需要
        locationOption.setIsNeedAddress(true);
        //可選进泼,設(shè)置是否需要地址描述
        locationOption.setIsNeedLocationDescribe(true);
        //可選蔗衡,設(shè)置是否需要設(shè)備方向結(jié)果
        locationOption.setNeedDeviceDirect(false);
        //可選,默認(rèn)false乳绕,設(shè)置是否當(dāng)gps有效時按照1S1次頻率輸出GPS結(jié)果
        locationOption.setLocationNotify(true);
        //可選绞惦,默認(rèn)true,定位SDK內(nèi)部是一個SERVICE洋措,并放到了獨立進程济蝉,設(shè)置是否在stop的時候殺死這個進程,默認(rèn)不殺死
        locationOption.setIgnoreKillProcess(true);
        //可選,默認(rèn)false堆生,設(shè)置是否需要位置語義化結(jié)果专缠,可以在BDLocation.getLocationDescribe里得到,結(jié)果類似于“在北京天安門附近”
        locationOption.setIsNeedLocationDescribe(true);
        //可選淑仆,默認(rèn)false涝婉,設(shè)置是否需要POI結(jié)果,可以在BDLocation.getPoiList里得到
        locationOption.setIsNeedLocationPoiList(true);
        //可選蔗怠,默認(rèn)false墩弯,設(shè)置是否收集CRASH信息,默認(rèn)收集
        locationOption.SetIgnoreCacheException(false);
        //可選寞射,默認(rèn)false渔工,設(shè)置是否開啟Gps定位
        locationOption.setOpenGps(true);
        //可選,默認(rèn)false桥温,設(shè)置定位時是否需要海拔信息引矩,默認(rèn)不需要,除基礎(chǔ)定位版本都可用
        locationOption.setIsNeedAltitude(false);
        //設(shè)置打開自動回調(diào)位置模式侵浸,該開關(guān)打開后旺韭,期間只要定位SDK檢測到位置變化就會主動回調(diào)給開發(fā)者,該模式下開發(fā)者無需再關(guān)心定位間隔是多少掏觉,定位SDK本身發(fā)現(xiàn)位置變化就會及時回調(diào)給開發(fā)者
        locationOption.setOpenAutoNotifyMode();
        //設(shè)置打開自動回調(diào)位置模式区端,該開關(guān)打開后,期間只要定位SDK檢測到位置變化就會主動回調(diào)給開發(fā)者
        locationOption.setOpenAutoNotifyMode(3000,1, LocationClientOption.LOC_SENSITIVITY_HIGHT);
        //開始定位
        locationClient.start();
    }


/**
     * 實現(xiàn)定位回調(diào)
     */
    public class MyLocationListener extends BDAbstractLocationListener {

        /**
         * 定位
         */
        @Override
        public void onReceiveLocation(BDLocation location){
            //此處的BDLocation為定位結(jié)果信息類澳腹,通過它的各種get方法可獲取定位相關(guān)的全部結(jié)果
            //以下只列舉部分獲取經(jīng)緯度相關(guān)(常用)的結(jié)果信息
            //更多結(jié)果信息獲取說明织盼,請參照類參考中BDLocation類中的說明

            //獲取緯度信息
            double latitude = location.getLatitude();
            //獲取經(jīng)度信息
            double longitude = location.getLongitude();
            //獲取定位精度,默認(rèn)值為0.0f
            float radius = location.getRadius();
            //獲取經(jīng)緯度坐標(biāo)類型酱塔,以LocationClientOption中設(shè)置過的坐標(biāo)類型為準(zhǔn)
            String coorType = location.getCoorType();
            //獲取定位類型沥邻、定位錯誤返回碼,具體信息可參照類參考中BDLocation類中的說明
            int errorCode = location.getLocType();

            String addrStr = location.getAddrStr();
            int locationWhere = location.getLocationWhere();
            String buildingName = location.getBuildingName();
            Address address = location.getAddress();
            String street = location.getStreet();
            List<Poi> poiList = location.getPoiList();
//            List<Poi> poiList = location.getPoiList();
//            String name = poiList.get(0).getName();

            Log.e("TAG" , "定位回調(diào):latitude: "+latitude+", longitude: "+longitude+", addrStr: "+addrStr+", locationWhere: "+locationWhere+", " +
                    "buildingName: "+buildingName+", address: "+address+", street: "+street+", poiList: "+poiList) ;
            LatLng ll = new LatLng(location.getLatitude(),
                    location.getLongitude());


            // 定位成功后延旧,保存當(dāng)前位置經(jīng)緯度
            String strLatitude = Double.toString(latitude) ;  // 維度
            String strLongitude = Double.toString(longitude) ;// 經(jīng)度

            PrefUtils.putString(getActivity() , "strLatitude" , strLatitude);
            PrefUtils.putString(getActivity() , "strLongitude" , strLongitude);

            getdata(ll);
        }
    }


    /**
     * 定位后獲取當(dāng)前經(jīng)緯度谋国,根據(jù)經(jīng)緯度 采用反編碼 獲取當(dāng)前位置信息
     */
    private void getdata(LatLng ll) {
        GeoCoder geoCoder = GeoCoder.newInstance();
        //
        OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() {
            // 反地理編碼查詢結(jié)果回調(diào)函數(shù)
            @Override
            public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
                if (result == null
                        || result.error != SearchResult.ERRORNO.NO_ERROR) {
                    // 沒有檢測到結(jié)果
                    Toast.makeText(getActivity() , "抱歉槽地,未能找到結(jié)果",
                            Toast.LENGTH_LONG).show();
                    return;
                }

                /*String addressBig = result.getSematicDescription(); // 美華·海潤大廈南135米
                String addressSmall = result.getAddress() ; // 北京市海淀區(qū)海淀南路36號,


                String address = result.getAddress();
                String street = result.getAddressDetail().street;
                String businessCircle = result.getBusinessCircle();
                List<ReverseGeoCodeResult.PoiRegionsInfo> poiRegionsInfoList = result.getPoiRegionsInfoList();
                List<PoiInfo> poiInfos = (ArrayList<PoiInfo>) result.getPoiList();*/

                List<PoiInfo> poiInfos = (ArrayList<PoiInfo>) result.getPoiList();

                address = poiInfos.get(0).address ;

                // 如果定位成功迁沫,則用sp保存定位后當(dāng)前默認(rèn)的地址
                PrefUtils.putString(getActivity() , DEFAULT_POSI , address);

                showPosiAddress(address) ;

            }

            // 地理編碼查詢結(jié)果回調(diào)函數(shù)
            @Override
            public void onGetGeoCodeResult(GeoCodeResult result) {
                if (result == null
                        || result.error != SearchResult.ERRORNO.NO_ERROR) {
                    // 沒有檢測到結(jié)果
                }
            }
        };
        // 設(shè)置地理編碼檢索監(jiān)聽者
        geoCoder.setOnGetGeoCodeResultListener(listener);
        //
        geoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(ll));
    }


    private void showPosiAddress(String address) {
        if (!TextUtils.isEmpty(mAddressFlag)){
            tv_location.setText(!TextUtils.isEmpty(mAddressFlag) ? mAddressFlag : "");
        }else if (!TextUtils.isEmpty(address)) {
            tv_location.setText(!TextUtils.isEmpty(address) ? address : "");
        }
    }

更詳細(xì)的可以參照 下邊這篇博客:
https://blog.csdn.net/a_ycmbc/article/details/51459502

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捌蚊,隨后出現(xiàn)的幾起案子集畅,更是在濱河造成了極大的恐慌,老刑警劉巖缅糟,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挺智,死亡現(xiàn)場離奇詭異,居然都是意外死亡窗宦,警方通過查閱死者的電腦和手機赦颇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門二鳄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人媒怯,你說我怎么就攤上這事订讼。” “怎么了扇苞?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵欺殿,是天一觀的道長。 經(jīng)常有香客問我鳖敷,道長脖苏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任定踱,我火速辦了婚禮棍潘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崖媚。我一直安慰自己蜒谤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布至扰。 她就那樣靜靜地躺著鳍徽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敢课。 梳的紋絲不亂的頭發(fā)上阶祭,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天,我揣著相機與錄音直秆,去河邊找鬼濒募。 笑死,一個胖子當(dāng)著我的面吹牛圾结,可吹牛的內(nèi)容都是我干的瑰剃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼筝野,長吁一口氣:“原來是場噩夢啊……” “哼晌姚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起歇竟,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挥唠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后焕议,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宝磨,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了唤锉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片世囊。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窿祥,靈堂內(nèi)的尸體忽然破棺而出茸习,到底是詐尸還是另有隱情,我是刑警寧澤壁肋,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布号胚,位于F島的核電站,受9級特大地震影響浸遗,放射性物質(zhì)發(fā)生泄漏猫胁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一跛锌、第九天 我趴在偏房一處隱蔽的房頂上張望弃秆。 院中可真熱鬧,春花似錦髓帽、人聲如沸菠赚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衡查。三九已至,卻和暖如春必盖,著一層夾襖步出監(jiān)牢的瞬間拌牲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工歌粥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塌忽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓失驶,卻偏偏與公主長得像土居,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嬉探,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容

  • CoreLocation框架 一. iOS8.0之前的定位(?????) 前臺定位導(dǎo)入CoreLocation框架...
    尼古拉斯趙四爺閱讀 975評論 0 2
  • 用兩張圖告訴你擦耀,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,744評論 2 59
  • 萊昂納德科恩說甲馋,萬物皆有裂痕埂奈,那是光照進來的地方迄损。 把疾病同樣當(dāng)成生活的一種體驗定躏,便看的開了。 自我記事起,我身體...
    瘋兔先生閱讀 597評論 0 4
  • 兒子:媽媽痊远,我要打籃球垮抗,這是老師的電話號碼! 媽媽:要馬上打碧聪? 兒子:是的冒版,而且打電話要說您好,請問逞姿,并把班級報上...
    五箴閱讀 438評論 0 0
  • 假如我只剩下十年的壽命滞造,那么我會感到非常難過续室。 總是以為這輩子還很漫長,沒想到只有十年的壽命了谒养,想想就會非常非常難...
    梅飛菲閱讀 229評論 1 5