android 百度坐标,Android SDK | 百度地图API SDK

简介

百度地图SDK目前提供的工具有:调启百度地图、空间计算、坐标转换、空间关系判断、收藏夹等功能。帮助开发者实现丰富的LBS功能。

调启百度地图

调启百度地图功能,需使用百度BD09坐标,如使用其他坐标(

WGS84、GCJ02)进行展示,需先将其他坐标转换为BD09,详细说明请参考坐标转换页面,请勿使用非官方的转换方法

百度地图SDK提供简单的接口调用,通过调起百度地图客户端,实现复杂的业务逻辑。

支持的调启类型有:POI周边检索、POI详情检索、POI全景、步行线路规划、驾车线路规划、公交线路规划、驾车导航、导航(步行、骑行 需百度地图App 8.6.6以上版本才可以支持)。

自Android v4.3起,增加调启百度地图步行AR导航。

当手机中安装了百度地图App(版本号为8.6.6及以上版本),可直接调起百度地图客户端;当没有安装或版本号不符合要求,则默认调起百度地图WebApp展示,开发者可以通过BaiduMapRoutePlan中的setSupportWebRoute设置是否支持调起WebApp。

调启百度地图公交线路规划

以公交线路规划调启百度地图为例,介绍具体使用方法。

// 天安门坐标

double mLat1 = 39.915291;

double mLon1 = 116.403857;

// 百度大厦坐标

double mLat2 = 40.056858;

double mLon2 = 116.308194;

LatLng pt_start = new LatLng(mLat1, mLon1);

LatLng pt_end = new LatLng(mLat2, mLon2);

// 构建 route搜索参数以及策略,起终点也可以用name构造

RouteParaOption para = new RouteParaOption()

.startPoint(pt_start)

.endPoint(pt_end)

.busStrategyType(EBusStrategyType.bus_recommend_way);

try {

BaiduMapRoutePlan.openBaiduMapTransitRoute(para, this);

} catch (Exception e) {

e.printStackTrace();

}

//结束调启功能时调用finish方法以释放相关资源

BaiduMapRoutePlan.finish(this);

调启百度地图步行导航

以步行导航调启百度地图为例,介绍具体使用方法。(步行需百度地图App 8.6.6以上版本才可以支持)

// 构建 导航参数

// 天安门坐标

double mLat1 = 39.915291;

double mLon1 = 116.403857;

// 百度大厦坐标

double mLat2 = 40.056858;

double mLon2 = 116.308194;

LatLng pt1 = new LatLng(mLat1, mLon1);

LatLng pt2 = new LatLng(mLat2, mLon2);

NaviParaOption para = new NaviParaOption()

.startPoint(pt1).endPoint(pt2)

.startName("天安门").endName("百度大厦");

try {

// 调起百度地图步行导航

BaiduMapNavigation.openBaiduMapWalkNavi(para, this);

} catch (BaiduMapAppNotSupportNaviException e) {

e.printStackTrace();

showDialog();

}

调启百度地图步行AR导航

自Android v4.3起,增加调启步行AR导航。当手机中安装了百度地图App(版本号为9.7.5及以上版本),可直接调起百度地图App步行AR导航功能;低于此版本,则直接调启普通步行导航,但是用户可以手动切换为步行AR导航功能。

实现调启步行AR导航的代码如下:

LatLng pt1 = new LatLng(39.915291, 116.403857);

LatLng pt2 = new LatLng(40.056858, 116.308194);

// 构建导航参数

NaviParaOption para = new NaviParaOption() .startPoint(pt1).endPoint(pt2);

// 调起步行AR导航

BaiduMapNavigation.openBaiduMapWalkNaviAR(para, this);

调启百度地图骑行导航

以骑行导航调启百度地图为例, 介绍具体使用方法。(骑行需百度地图App 8.6.6以上版本才可以支持)

// 天安门坐标

double mLat1 = 39.915291;

double mLon1 = 116.403857;

// 百度大厦坐标

double mLat2 = 40.056858;

double mLon2 = 116.308194;

LatLng pt1 = new LatLng(mLat1, mLon1);

LatLng pt2 = new LatLng(mLat2, mLon2);

// 构建 导航参数

NaviParaOption para = new NaviParaOption()

.startPoint(pt1).endPoint(pt2)

.startName("天安门").endName("百度大厦");

try {

// 调起百度地图骑行导航

BaiduMapNavigation.openBaiduMapBikeNavi(para, this);

} catch (BaiduMapAppNotSupportNaviException e) {

e.printStackTrace();

showDialog();

}

调启百度地图POI全景

以POI全景调启百度地图为例,介绍调起方法如下:

// 调起百度地图POI全景

BaiduMapPoiSearch.openBaiduMapPanoShow("65e1ee886c885190f60e77ff", this); // 天安门

空间计算

根据用户指定的两个坐标点,计算这两个点的实际地理距离。核心代码如下:

//计算p1、p2两点之间的直线距离,单位:米

DistanceUtil. getDistance(p1, p2);

根据用户指定的左下角和右上角坐标,计算这两个坐标构成矩形的地理面积。核心代码如下:

//计算northeast, southwest两点构成矩形的地理面积,即东北、西南坐标。单位:平方米

AreaUtil.calculateArea(northeast, southwest);

空间关系判断

提供相应的接口能力,判断点与圆或多边形的位置关系。实现的核心代码如下:

//判断点pt是否在,以pCenter为中心点,radius为半径的圆内。

SpatialRelationUtil.isCircleContainsPoint(pCenter, radius, pt);

除以上位置关系判断方法外,SDK还提供获取折线上与折线外指定位置最近点的方法。核心代码如下:

//pt1是点pt在折线(由points构成)上最近点。

//points为构成polyline的点列表

LatLng pt1 = SpatialRelationUtil.getNearestPointFromLine(points, pt);

收藏夹功能

自v3.4.0版本起,SDK向开发者开放了本地收藏夹功能,帮助开发者更好的收藏、管理本地空间点信息数据。

注意:

1、收藏夹数据在本地存放,存储于手机data/data/xxx.xxx.xxx(应用程序的包名)/files目录下。

2、当应用卸载,相应数据将删除;覆盖安装时不会影响数据。

3、FavoriteManager管理方法,单例模式。

具体使用方法如下:

//在使用之前必须调用初始化方法

FavoriteManager.getInstance().init();

//构造一个点信息,pt和poiName是必填项

FavoritePoiInfo info = new FavoritePoiInfo().poiName("test").pt(new LatLng(mLat, mLon));

//添加到收藏夹,info既是输入也是输出,输出时携带id和时间戳

FavoriteManager.getInstance().add(info);

Log.d("baidumapsdk","info idis:" + info.getID() + ",timestamp is :"+String.valueOf(info.getTimeStamp()));

//删除

FavoriteManager.getInstance().deleteFavPoi(info.getID());

//更新,修改info的属性

FavoriteManager.getInstance().updateFavPoi(info.getID(), info);

//通过id获取某个点的信息

FavoriteManager.getInstance().getFavPoi(info.getID());

//获取全部点

FavoriteManager.getInstance().getAllFavPois();

//清空所有数据

FavoriteManager.getInstance().clearAllFavPoi ();

//不用时销毁对象释放内存

FavoriteManager.getInstance().destroy();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值