android 我的位置 高德地图 手机高德地图安装位置

您所在的位置:网站首页 高德地图安装位置 android 我的位置 高德地图 手机高德地图安装位置

android 我的位置 高德地图 手机高德地图安装位置

2024-04-04 19:04| 来源: 网络整理| 查看: 265

方法1:通过拷贝集成SDK

1、拷贝 jar 文件至 libs 文件夹下

将下载的定位 SDK jar 文件复制到工程(此处截图以官方示例Demo为例子)的 libs 目录下,如果有老版本定位 jar 文件存在,请删除。定位 SDK 无需 so 库文件支持。如图所示:

android 我的位置 高德地图 手机高德地图安装位置_室内定位

2、配置 build.gradle 文件

在 build.gradle 文件的 dependencies 中配置 compile fileTree(include: ['*.jar'], dir: 'libs')。

方法2:通过Gradle集成SDK

1、在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址

Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录中位置如图所示:

android 我的位置 高德地图 手机高德地图安装位置_初始化_02

配置如下:

allprojects { repositories { jcenter() // 或者 mavenCentral() } }

2、在主工程的build.gradle文件配置dependencies

根据项目需求添加SDK依赖。引入各个SDK功能最新版本, dependencies 配置方式如下:

SDK

引入代码

3D地图

compile 'com.amap.api:3dmap:latest.integration'

2D地图

compile 'com.amap.api:map2d:latest.integration'

导航

compile 'com.amap.api:navi-3dmap:latest.integration'

搜索

compile 'com.amap.api:search:latest.integration'

定位

compile 'com.amap.api:location:latest.integration'

android 我的位置 高德地图 手机高德地图安装位置_d_03

接下来进行以下操作:第 1 步,配置AndroidManifest.xml

首先,声明Service组件

请在application标签中声明service组件,每个app拥有自己单独的定位service。

然后,声明权限

Android 6.0及以上系统可以参考Android 6.0权限说明章节。

最后,设置高德Key

在application标签中加入:

//开发者申请的key 下面是完整的代码:

 

public class MainActivity extends AppCompatActivity { private static final float ZOOM_VALUE = 16; private static final String TAG = "MainActivity"; private MapView mMapView; private AMap mMap; private AMapLocationClient mLocationClient; private AMapLocationClientOption mLocationOption; private LocationSource.OnLocationChangedListener mListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.map_view); mMapView.onCreate(savedInstanceState); if (mMap == null) { mMap = mMapView.getMap(); } mMap.getUiSettings().setZoomControlsEnabled(false); //设置地图的缩放级别 mMap.moveCamera(CameraUpdateFactory.zoomTo(ZOOM_VALUE)); //调用此方法定位 setUpMap(); } /** * 设置一些amap的属性 */ private void setUpMap() { // 自定义系统定位小蓝点 MyLocationStyle myLocationStyle = new MyLocationStyle(); // myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker));// 设置小蓝点的图标 myLocationStyle.strokeColor(Color.BLACK);// 设置圆形的边框颜色 myLocationStyle.radiusFillColor(Color.argb(100, 0, 191, 255));// 设置圆形的填充颜色 // myLocationStyle.anchor(int,int)//设置小蓝点的锚点 myLocationStyle.strokeWidth(1.0f);// 设置圆形的边框粗细 mMap.setMyLocationStyle(myLocationStyle); mMap.setLocationSource(mLocationSource);// 设置定位监听 mMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示 mMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false } public LocationSource mLocationSource = new LocationSource() { @Override public void activate(OnLocationChangedListener onLocationChangedListener) { mListener = onLocationChangedListener; //初始化定位 initAmapLocation(); } @Override public void deactivate() { mListener = null; if (mLocationClient != null) { mLocationClient.stopLocation(); mLocationClient.onDestroy(); } mLocationClient = null; } }; /** * 初始化定位 */ private void initAmapLocation() { //初始化定位 mLocationClient = new AMapLocationClient(this); //设置定位回调监听 mLocationClient.setLocationListener(mAMapLocationListener); //初始化AMapLocationClientOption对象 mLocationOption = new AMapLocationClientOption(); // 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景) mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.Transport); //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。 mLocationOption.setInterval(5000); //设置是否返回地址信息(默认返回地址信息) mLocationOption.setNeedAddress(true); //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。 mLocationOption.setHttpTimeOut(20000); if (null != mLocationClient) { mLocationClient.setLocationOption(mLocationOption); //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效 // mLocationClient.stopLocation(); mLocationClient.startLocation(); } } /** * 定位 */ public AMapLocationListener mAMapLocationListener = new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation amapLocation) { if (amapLocation != null) { if (amapLocation.getErrorCode() == 0) { //可在其中解析amapLocation获取相应内容。 mListener.onLocationChanged(amapLocation);// 显示系统小蓝点,不写这一句无法显示到当前位置 amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表 amapLocation.getLatitude();//获取纬度 amapLocation.getLongitude();//获取经度 amapLocation.getAccuracy();//获取精度信息 amapLocation.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。 amapLocation.getCountry();//国家信息 amapLocation.getProvince();//省信息 amapLocation.getCity();//城市信息 amapLocation.getDistrict();//城区信息 amapLocation.getStreet();//街道信息 amapLocation.getStreetNum();//街道门牌号信息 amapLocation.getCityCode();//城市编码 amapLocation.getAdCode();//地区编码 amapLocation.getAoiName();//获取当前定位点的AOI信息 amapLocation.getBuildingId();//获取当前室内定位的建筑物Id amapLocation.getFloor();//获取当前室内定位的楼层 amapLocation.getGpsAccuracyStatus();//获取GPS的当前状态 amapLocation.getLocationDetail();//定位信息描述 amapLocation.getBearing();//获取方向角信息 amapLocation.getSpeed();//获取速度信息 单位:米/秒 amapLocation.getPoiName();//获取当前位置的POI名称 //获取定位时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(amapLocation.getTime()); sdf.format(date); Log.e(TAG, "获取当前定位结果来源:::" + amapLocation.getLocationType()); Log.e(TAG, "获取纬度:::" + amapLocation.getLatitude()); Log.e(TAG, "获取经度:::" + amapLocation.getLongitude()); Log.e(TAG, "获取精度信息:::" + amapLocation.getAccuracy()); Log.e(TAG, "获取地址:::" + amapLocation.getAddress()); Log.e(TAG, "获取国家信息:::" + amapLocation.getCountry()); Log.e(TAG, "获取省信息:::" + amapLocation.getProvince()); Log.e(TAG, "获取城市信息:::" + amapLocation.getCity()); Log.e(TAG, "获取城区信息:::" + amapLocation.getDistrict()); Log.e(TAG, "获取街道信息:::" + amapLocation.getStreet()); Log.e(TAG, "获取街道门牌号信息:::" + amapLocation.getStreetNum()); Log.e(TAG, "获取城市编码:::" + amapLocation.getCityCode()); Log.e(TAG, "获取地区编码:::" + amapLocation.getAdCode()); Log.e(TAG, "获取当前定位点的AOI信息:::" + amapLocation.getAoiName()); Log.e(TAG, "获取当前室内定位的建筑物Id:::" + amapLocation.getBuildingId()); Log.e(TAG, "获取当前室内定位的楼层:::" + amapLocation.getFloor()); Log.e(TAG, "获取GPS的当前状态:::" + amapLocation.getGpsAccuracyStatus()); Log.e(TAG, "获取定位信息描述:::" + amapLocation.getLocationDetail()); Log.e(TAG, "获取方向角信息:::" + amapLocation.getBearing()); Log.e(TAG, "获取速度信息:::" + amapLocation.getSpeed() + "m/s"); Log.e(TAG, "获取海拔高度信息:::" + amapLocation.getAltitude()); Log.e(TAG, "获取当前位置的POI名称:::" + amapLocation.getPoiName()); } else { //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。 Log.e("AmapError", "location Error, ErrCode:" + amapLocation.getErrorCode() + ", errInfo:" + amapLocation.getErrorInfo()); } } } }; }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3