第三方高德地图定位+小蓝点
一、导入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());
}
}
}
}
推荐阅读
- android第三方框架(五)ButterKnife
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 拿着旧地图,找不到新大陆
- Android7.0|Android7.0 第三方应用无法访问私有库
- 地图|地图 旅行 菜系
- iOS常用第三方库
- 【微信开放平台】微信第三方扫码登录(亲测可用)
- 百度地图多边形时候射线问题2018-09-01
- 安全资讯(2018.7.09)
- 地图|高德地图清除指定覆盖物 自定义覆盖物样式(完整dome)