显示定位蓝点
来源:互联网 发布:mac电脑刷机数据恢复 编辑:程序博客网 时间:2024/04/28 13:55
官方文档是最重要的学习源,这篇博客参考官方文档显示定位蓝点
在显示定位蓝点时,一个非常重要的事情是申请定位权限,不然会定位到莫名其妙的位置。官方文档对于定位蓝点其他的一些控制有详细说明。
核心代码
private void initMap() { Log.d(TAG, "initMap: 初始化高德地图"); if (aMap == null) { aMap = mMapView.getMap(); } //初始化定位蓝点样式类 myLocationStyle = new MyLocationStyle(); //只定位一次。 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE); //设置定位蓝点的Style aMap.setMyLocationStyle(myLocationStyle); // 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 aMap.setMyLocationEnabled(true); //设置默认定位按钮是否显示,非必需设置。 aMap.getUiSettings().setMyLocationButtonEnabled(true); }
申请权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "onCreate: 申请定位权限"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION}, 1); } else { initMap(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: if (grantResults.length > 0) { boolean flag = true; for (int i = 0; i < grantResults.length; i++) { if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "onRequestPermissionsResult: 未授权 " + permissions[i]); toast("未给予权限" + permissions[i]); flag=false; } } if(flag){ toast("授权通过"); initMap(); } } break; default: } }
所有代码
package cn.net.pikachu.amapdemo.demo2;import android.Manifest;import android.content.pm.PackageManager;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.amap.api.maps.AMap;import com.amap.api.maps.MapView;import com.amap.api.maps.model.MyLocationStyle;import cn.net.pikachu.amapdemo.BaseActivity;import cn.net.pikachu.amapdemo.R;public class Demo2Activity extends BaseActivity { private static final String TAG = "Demo2Activity"; private MapView mMapView; private AMap aMap; private MyLocationStyle myLocationStyle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo2); //获取地图控件引用 mMapView = findViewById(R.id.mapView); //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图 mMapView.onCreate(savedInstanceState); if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "onCreate: 申请定位权限"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION}, 1); } else { initMap(); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: if (grantResults.length > 0) { boolean flag = true; for (int i = 0; i < grantResults.length; i++) { if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { Log.d(TAG, "onRequestPermissionsResult: 未授权 " + permissions[i]); toast("未给予权限" + permissions[i]); flag=false; } } if(flag){ toast("授权通过"); initMap(); } } break; default: } } private void initMap() { Log.d(TAG, "initMap: 初始化高德地图"); if (aMap == null) { aMap = mMapView.getMap(); } //初始化定位蓝点样式类 myLocationStyle = new MyLocationStyle(); //只定位一次。 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE); //设置定位蓝点的Style aMap.setMyLocationStyle(myLocationStyle); // 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 aMap.setMyLocationEnabled(true); //设置默认定位按钮是否显示,非必需设置。 aMap.getUiSettings().setMyLocationButtonEnabled(true); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制 mMapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态 mMapView.onSaveInstanceState(outState); }}
阅读全文
0 0
- 显示定位蓝点
- andro studio高德地图开发:显示定位蓝点
- 手把手叫你如何集成高德地图,实现地图显示、定位蓝点、大头针显示、获取周围地点信息等
- IOS去除百度地图定位后的蓝色圆圈和定位蓝点(精度圈)
- 高德地图之地图篇----->定位的蓝点、添加Marker
- 百度地图定位到指定点,并显示指定图标
- 百度地图api显示定位点和其周围的搜索点
- 有关iOS定位中的蓝条问题
- 蓝点产品管理系统 怎么用
- 蓝点世纪---最大的骗子机构
- 蓝光刻录的几点体会
- 字符串匹配 国信蓝点试题
- 第二届国信蓝点模拟试题
- 从Access数据库中取出定位点,通过百度地图API在地图上显示
- Orcad orcad 汉字显示重叠 Cadence升级后“无法定位程序输入点 ordb_dll_dll
- 开机显示无法定位程序输入点于动态链接库?
- js锚点定位
- js锚点定位
- Uva 201 Squares (暴力 + 枚举)
- MyBatis学习笔记(五)--MyBatis杂项
- linux权限管理
- Hadoop体系结构
- STL标准库Deque容器
- 显示定位蓝点
- MyBatis学习笔记(六)--使用注解配置SQL映射器
- STL标准库Stack
- MyBatis学习笔记(七)--MyBatis与Spring SpringMVC的整合
- Python简化类例七:单例类的写法
- vb.net 教程 8-2 简单的SQL语言4
- CentOS上部署Jenkins&Nginx
- spark shuffle 发展变迁及源码实现
- STL标准库Queue