android 地图封装,给Android开发开拓封装百度地图/等SDK的思想与参考源代码

本帖最后由 破天丿彡 于 2019-3-14 17:29 编辑

免得看糊涂,先来结构图

对你有用的话请给波热心值

55fd2b2273b5a8b4531f72773c469d6e.gif

TIM截图20190314115720.png (195.16 KB, 下载次数: 1)

2019-3-14 16:16 上传

使用的截图

[Java] 纯文本查看 复制代码/**

* 创建日期:2019-03-05

* 创建人:zc

* 此页面描述:使用百度地图的基础activity

*/

public abstract class BaseBaiDuMapActivity extends BaseActivity {

private MapView mMapView = null;

public BaiduMap mBaiduMap;

@Override

protected void onCreate([url=home.php?mod=space&uid=1043391]@nullable[/url] Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(getContentViewLayout());

//初始化百度地图

mMapView = findViewById(getBaiduMap());

// 设置是否显示缩放控件

mMapView.showZoomControls(true);

//获取地图控制器

mBaiduMap = mMapView.getMap();

//初始化百度地图设置

mBaiduMap = BaiduMapUtil.iniBaiDuMao(mBaiduMap);

}

protected abstract int getContentViewLayout();

//百度地图控件的id

protected abstract int getBaiduMap();

@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 onDestroy() {

super.onDestroy();

//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

mMapView.onDestroy();

}

[Java] 纯文本查看 复制代码/**

* 创建日期:2019-03-05

* 创建人:zc

* 此页面描述:在地图上叠加覆盖物/要在上添加自己的业务用此类

*/

public class OverlayOptionsUtil {

//设置经纬度

public static LatLng getCarLatLng(){

return new LatLng([font=Microsoft YaHei][color=#000000][size=13.3333px]116.401394,39.915156[/size][/color][/font]);

}

//定义地图中心点

public static OverlayOptions setMaker(){

//设置经纬度

//构建Marker图标

BitmapDescriptor bitmap ;

//设置在地图上显示的图标

if(type==0){

bitmap = BitmapDescriptorFactory.fromResource(R.mipmap.ico_gray);

}else{

bitmap = BitmapDescriptorFactory.fromResource(R.mipmap.ico_boy);

}

//构建MarkerOption,用于在地图上添加Marker

OverlayOptions option = new MarkerOptions()

.position(getCarLatLng()) //必传参数

.icon(bitmap) //必传参数

.draggable(true);

return option;

}

[Java] 纯文本查看 复制代码**

* 创建日期:2019-03-05

* 创建人:zc

* 此页面描述:百度地图控制器

*/

public class BaiduMapUtil {

/**

* 百度地图设置

* [url=home.php?mod=space&uid=952169]@Param[/url] mBaiduMap

* @return

*/

public static BaiduMap iniBaiDuMao(BaiduMap mBaiduMap){

//设置地图类型

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

//设置是否允许定位地图

mBaiduMap.setMyLocationEnabled(true);

//设置是否打开交通地图

mBaiduMap.setTrafficEnabled(true);

// 设置是否显示室内图, 默认室内图不显示 室内图只有在缩放级别[17, 22]范围才生效,但是在18级之上(包含18级)才会有楼层边条显示。

mBaiduMap.setIndoorEnable(true);

//设置地图中心点

mBaiduMap.addOverlay(

OverlayOptionsUtil.setMaker());

//设置地图缩放比例

float f = mBaiduMap.getMaxZoomLevel();//19.0 最小比例尺

MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom( 8);//设置缩放比例

mBaiduMap.animateMapStatus(u);

return mBaiduMap;

}

来个使用的实例代码

[Java] 纯文本查看 复制代码public class TestBaiduActivity extends BaseBaiDuMapActivity {

private int radius;

private double yuan_lat=0,yuan_lon=0;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

initView();

}

@Override

protected int getContentViewLayout() {

return R.layout.activity_baidu_map;

}

private void getMap( int radius) {

mBaiduMap.clear();//清除地图上的覆盖物

//添加所在位置

mBaiduMap.addOverlay(OverlayOptionsUtil.setMaker());

//在地图范围添加一个圆圈,传入圆心点的坐标point,填充的颜色,半径(米),还可以设置边框等等

CircleOptions circle = new CircleOptions().center(OverlayOptionsUtil.getCarLatLng()).fillColor(0x8000c3ff).radius(radius);

//添加地图范围

mBaiduMap.addOverlay(circle);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值