第三方高德地图定位+小蓝点

一、导入jar包
【第三方高德地图定位+小蓝点】第三方高德地图定位+小蓝点
文章图片

二、新建一个java下的包 并导入文件
第三方高德地图定位+小蓝点
文章图片


三、同步libs里面的jar包



四、加权限


五、写在application下 value是获取好的key
//开发者申请的key

六、xml
第三方高德地图定位+小蓝点
文章图片


七、跳转页面
第三方高德地图定位+小蓝点
文章图片

public class MainActivity1 extends AppCompatActivity {private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main1); img = (ImageView) findViewById(R.id.img); img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity1.this, MainActivity.class); startActivity(intent); } }); } }

八、xml
第三方高德地图定位+小蓝点
文章图片


九、展示地图页面
public class MainActivity extends AppCompatActivity implements AMapLocationListener {//声明mlocationClient对象 public AMapLocationClient mlocationClient; //声明mLocationOption对象 public AMapLocationClientOption mLocationOption = null; privateMapView mMapView = null; AMap aMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.map); //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图 mMapView.onCreate(savedInstanceState); if (aMap == null) { aMap = mMapView.getMap(); } //小蓝点 MyLocationStyle myLocationStyle; myLocationStyle = new MyLocationStyle(); //初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE); //连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。 myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。 aMap.setMyLocationStyle(myLocationStyle); //设置定位蓝点的Style //aMap.getUiSettings().setMyLocationButtonEnabled(true); 设置默认定位按钮是否显示,非必需设置。 aMap.setMyLocationEnabled(true); // 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE); //吐司定位 mlocationClient = new AMapLocationClient(this); //初始化定位参数 mLocationOption = new AMapLocationClientOption(); //设置返回地址信息,默认为true mLocationOption.setNeedAddress(true); //设置定位监听 mlocationClient.setLocationListener(this); //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置定位间隔,单位毫秒,默认为2000ms mLocationOption.setInterval(2000); //设置定位参数 mlocationClient.setLocationOption(mLocationOption); // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, // 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求 // 在定位结束后,在合适的生命周期调用onDestroy()方法 // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除 //启动定位 mlocationClient.startLocation(); } @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); }@Override public void onLocationChanged(AMapLocation amapLocation) { if (amapLocation != null) { if (amapLocation.getErrorCode() == 0) { //定位成功回调信息,设置相关消息 amapLocation.getLocationType(); //获取当前定位结果来源,如网络定位结果,详见定位类型表 amapLocation.getLatitude(); //获取纬度 amapLocation.getLongitude(); //获取经度 amapLocation.getAccuracy(); //获取精度信息 /*SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(amapLocation.getTime()); df.format(date); //定位时间*/ amapLocation.getAddress(); //地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。 amapLocation.getCountry(); //国家信息 amapLocation.getProvince(); //省信息 String city = amapLocation.getCity(); //城市信息 amapLocation.getDistrict(); //城区信息 amapLocation.getStreet(); //街道信息 amapLocation.getStreetNum(); //街道门牌号信息 amapLocation.getCityCode(); //城市编码 amapLocation.getAdCode(); //地区编码 /*amapLocation.getAOIName(); //获取当前定位点的AOI信息*/ Toast.makeText(MainActivity.this,city,Toast.LENGTH_SHORT).show(); } else { //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。 Log.e("AmapError","location Error, ErrCode:" + amapLocation.getErrorCode() + ", errInfo:" + amapLocation.getErrorInfo()); } } } }

    推荐阅读