中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

百度地圖開放API初體驗(二)

發布時間:2020-10-10 23:51:42 來源:網絡 閱讀:345 作者:_隨心 欄目:移動開發

    前面已經實現了初始化百度地圖,但是其默認顯示位置是北京地區。換言之,它并沒有根據自己需要而定位不同的位置。這里要介紹的,就是要實現簡單的定位功能。


  1. 在AndroidManifest.xml中的application標簽中聲明service組件,因為每個app都擁有自己單獨的定位service:


<application

  

   ...


   <service

       android:name="com.baidu.location.f" 

       android:enabled="true"

       android:process=":remote" >

    </service>


    ...

</application>


2.在AndroidManifest.xml中聲明使用的權限。這個在第一篇介紹中,如果已經聲明過了就足夠使用,可以按照需求參考:

http://developer.baidu.com/map/index.php?title=android-locsdk/guide/v5-0


3.設置一個“我的位置”選項,這里不設置按鈕,直接在菜單中顯示點擊,所以在res里面的menu文件夾下新建一個.xml文件(也可以用默認的),在里面設置一個item(這里用默認的main.xml):

<menu
...
    <item
        android:id="@+id/id_map_location"
        android:showAsAction="never"
        android:title="我的位置"/>
</menu>



4.進行main.java的編寫:


public class MainActivity extends Activity {


        ...


        //定義相關定位變量

private LocationClient mLocationClient;

private MyLocationListener myLocationListener;

private boolean isFirstIn = true;

private double mLatitude;

private double mLongtitude;

        private Context context;

        private String mAddress;


//自定義定位圖標

private BitmapDescriptor mIconLocation;


        ...


       protected void onCreate(Bundle savedInstanceState) {


             ...


             initLocation();//定位函數

      

             ...

       }  

       

private void initLocation(){

mLocationMode =LocationMode.NORMAL;//定義地圖顯示模式,這里是普通模式

mLocationClient =new LocationClient(this);//定位服務的客戶端

myLocationListener = new MyLocationListener();//定位請求回調函數

mLocationClient.registerLocationListener(myLocationListener);//注冊監聽

LocationClientOption option = new LocationClientOption();//設置定位參數

option.setCoorType("bd09ll");//返回百度地圖地標

option.setIsNeedAddress(true);//返回定位位置

option.setOpenGps(true);//打開GPS

option.setScanSpan(1000);//每1000ms掃描一次定位

mLocationClient.setLocOption(option);//設置LocationClientOption


//初始化圖標,記得在res下的drawable文件下貼上自定義的圖片

mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.test1);

       }


        //在onStart里面開啟定位


        protected void onStart() {

super.onStart();

mBaiduMap.setMyLocationEnabled(true);

if(!mLocationClient.isStarted())

mLocationClient.start();

}


        //在onStop里面停止定位

protected void onStop() {

super.onStop();

mBaiduMap.setMyLocationEnabled(false);

mLocationClient.stop();

}


        //這個是每個工程自定義的Menu監聽,監聽item是否被選中

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main,menu);

return true;

}


        //選中item時的動作定義

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

        case R.id.id_map_location:

        LatLng latLng = new LatLng(mLatitude, mLongtitude);//取得目前位置的經緯度

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);//更新經緯度

mBaiduMap.animateMapStatus(msu);//以動畫方式更新地圖狀態

        Toast.makeText(context,mAddress,Toast.LENGTH_SHORT).show();//顯示位置信息

                break;

default:

break;

}

return super.onOptionsItemSelected(item);

}


private class MyLocationListener implements BDLocationListener{

public void onReceiveLocation(BDLocation location){

MyLocationData data = new MyLocationData.Builder()//

   .accuracy(location.getRadius())//

   .latitude(location.getLatitude())//

   .longitude(location.getLongitude())//

   .build();

mBaiduMap.setMyLocationData(data);


   //設置自定義圖標

   MyLocationConfiguration config = new MyLocationConfiguration(mLocationMode, true, mIconLocation);

mBaiduMap.setMyLocationConfigeration(config);

            

//更新經緯度

mLatitude = location.getLatitude();

mLongtitude = location.getLongitude();

 if(isFirstIn)

{   

LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);

mBaiduMap.animateMapStatus(msu);

isFirstIn = false;

        mAddress = location.getAddrStr();

Toast.makeText(context,mAddress,Toast.LENGTH_SHORT).show();

}

  

}

}

}



    這里已經實現了簡單的定位功能,小伙伴們可以嘗試一下~

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴旗县| 丹巴县| 泸州市| 信宜市| 蒲城县| 三穗县| 唐河县| 江华| 林周县| 响水县| 宁阳县| 莫力| 怀宁县| 修文县| 吉林省| 惠安县| 峨眉山市| 博野县| 来凤县| 元阳县| 霸州市| 盘山县| 新安县| 诸城市| 徐闻县| 潜山县| 额济纳旗| 临沂市| 昔阳县| 永仁县| 电白县| 嵊泗县| 吉木萨尔县| 罗江县| 廊坊市| 崇阳县| 敦煌市| 平远县| 大化| 宝清县| 桐庐县|