android如何实现百度定位
来源:互联网 发布:office 2016 for mac 编辑:程序博客网 时间:2024/06/01 07:47
//布局文件
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
package com.example.fragment;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BaiduMap.OnMapClickListener;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapPoi;import com.baidu.mapapi.map.MapStatus;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationConfiguration;import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;import com.baidu.mapapi.search.route.RoutePlanSearch;import com.example.runningman.R;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/** * * 帮我买页面,该页面加载一个FrameLayout布局和tabhost,点击tabhost中的选项 * 展示相对应的页面, * @author 浅议爱 *该页面实现百度地图定位 */public class BuyFragment extends Fragment { //定义控件 MapView mMapView = null; // 定位相关 LocationClient mLocClient; //配置定位图层显示方式 private LocationMode mCurrentMode; BitmapDescriptor mCurrentMarker; //定义 BaiduMap 地图对象的操作方法与接口 BaiduMap mBaiduMap; boolean isFirstLoc = true; // 是否首次定位 public MyLocationListenner myListener = new MyLocationListenner(); private TextView tv_map; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub SDKInitializer.initialize(getActivity().getApplicationContext()); View view=LayoutInflater.from(getActivity()).inflate(R.layout.buyfragment, null); mMapView = (MapView)view. findViewById(R.id.bmapView);// tv_map=(TextView) view.findViewById(R.id.map_tv); // 定位初始化 mLocClient = new LocationClient(getActivity()); mLocClient.registerLocationListener(myListener); mBaiduMap=mMapView.getMap(); // 开启定位图层 mBaiduMap.setMyLocationEnabled(true); mCurrentMode = LocationMode.NORMAL; mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.icon_geo); mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration( mCurrentMode, true, mCurrentMarker)); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); //打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); mLocClient.setLocOption(option); mLocClient.start(); return view; } public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) { return; }// tv_map.setText("[我的位置]\n" + location.getStreet()); MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); } } public void onReceivePoi(BDLocation poiLocation) { } }}
//配置文件
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.runningman" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <!-- 这个权限用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 这个权限用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <!-- 用于读取手机当前的状态--> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 访问网络,网络定位需要上网--> <uses-permission android:name="android.permission.INTERNET" /> <!-- SD卡读取权限,用户写入离线定位数据--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".CityActivity" android:label="@string/app_name" > </activity> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="L3DDL8oKCrO61zTxOXPXEX3wHfkLunZb" /> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service> </application></manifest>
0 0
- android如何实现百度定位
- android 如何调用百度定位api接口
- 百度地图android版 自我定位实现
- android 百度地图定位功能实现
- 实现android基于百度的定位
- Android 轻松实现百度地图定位
- Android实现百度地图定位(墨雪亲测)
- Android用百度地图实现定位
- Android中百度地图基础实现,定位
- Android 百度定位SDK配置和实现当前位置定位
- Android应用程序实现定位功能(使用百度定位SDK)
- Android调用百度地图app , 实现百度定位、导航
- Android 百度地图开发(一)如何调用百度地图接口和在项目中显示百度地图以及实现定位
- iOS 百度定位实现
- 百度定位的实现
- 百度定位实现操作
- android百度定位
- Android 百度地图 定位
- R-CNN阅读笔记
- phonegap
- yum 安装redis
- iBatis使用
- form表单通过hidden向后台传递请求数据
- android如何实现百度定位
- 提升方法 - 2 - 前向分布算法和提升树
- samba “The specified network name is no longer available” 出错的解决办法
- UIActivityIndicatorView
- LeetCode第7题String Integer
- Beyond Compare如何展开所有子文件夹
- iOS HTTP、TCP/IP协议
- 高效除去List集合和数组中的重复元素
- iOS Quartz2D使用(绘图路径)