凯立德导航
1.需要在application里面注冊sdk
CldMap.NaviInitListener mInitListener = new CldMap.NaviInitListener() {@Override
public void initFailed(String s) {
}
@Override
public void initSuccess() {
}
@Override
public void initStart() {
}
@Override
public void onAuthResult(int status, String msg) {
String str;
if (0 == status) {
str = "key 校驗成功!";
} else {
str = "key 校驗失敗!";
}
// Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}
};
CldNaviManager.getInstance().init(this, mInitListener);
// 開啟gps混合定位
location(LocationMode.MIXED, 0); /**
* 定位
*
* @param locationMode
* 定位類型 參考類LocationMode
* @param spanMs
* 定位頻率 單位毫秒
* @return void
* @author Huagx
* @date 2016-1-28 上午9:11:40
*/
private void location(int locationMode, int spanMs) {
if (null == locationManager) {
locationManager = new CldLocationClient(this);
}
// 如果已開啟定位,先停掉
if (locationManager.isStarted()) {
locationManager.stop();
}
// 設置定位選項
CldLocationOption option = new CldLocationOption();
option.setLocationMode(locationMode);// 設置定位模式
option.setNetworkScanSpan(spanMs);// 定位掃描時間
locationManager.setLocOption(option);
locationManager.registerLocationListener(new ICldLocationListener() {
@Override
public void onReceiveLocation(CldLocation location) {
if (null != location) {
double altitude = location.getAltitude();
latitude = location.getLatitude();
longitude = location.getLongitude();
float accuracy = location.getAccuracy();
float bearing = location.getBearing();
float speed = location.getSpeed();
long time = location.getTime();
addr = location.getAddress();
String adCode = location.getAdCode();
dist = location.getDistrict();
city = location.getCity();
String cityCode = location.getCityCode();
province = location.getProvince();
String locInfo = "lat:" + latitude + ",lon:" + longitude
+ "alt:" + altitude + ",acc:" + accuracy + ",bear:"
+ bearing + ",spd:" + speed + ",time:" + time
+ ",provice:" + province + "city:" + city
+ ",code:" + cityCode + ",dist:" + dist + ",addr:"
+ addr + ",adcode:" + adCode;
Log.i("location", locInfo);
}
}
});
locationManager.start();
}
2.添加地圖 <com.cld.mapapi.map.MapView
/>
3.onCreate方法里面 bmapView.showZoomControls(false);//去掉中心點圖標
mBaidumap = bmapView.getMap();
mBaidumap.setLocationIconEnabled(false);
3.地圖上插點 mBaidumap.addOverlay(new MarkerOptions()
.position(new LatLng(Double.parseDouble(lat.getLat()), Double.parseDouble(lat.getLng()))).icon(
getResources().getDrawable(R.drawable.carmarker))
.rotate(0).alpha(0.8f));
4.縮放地圖使地圖上的點顯示在視野范圍中 private List<LatLng> latlngs=new ArrayList<>();//坐標集合
latlngs.add(lng1); latlngs.add(lng2);
mBaidumap.zoomToSpan(latlngs);//縮放到合適比例,將傳入的點坐標都顯示出來
5.路徑規劃
startCalcRoute(Double.parseDouble(lat.getLng()), Double.parseDouble(lat.getLat()), longi2, lat2, longi1, lat1);
6.調啟貨運導航 LatLng st = new LatLng(startLat, endLat);
LatLng en = new LatLng(lat2, longi2);
startHYNavi(st, en); /**
* 調起貨運導航
*
* @return void
* @author Zhouls
* @date Sep 12, 2016 5:09:00 PM
*/
private void startHYNavi(LatLng pt1, LatLng pt2) {
// 構建 導航參數
NaviHYParaOption para = new NaviHYParaOption()
// 設置起點坐標
.startPoint(pt1)
// 設置終點坐標
.endPoint(pt2);
// // 車長,單位(米)(不設置或者設置為0 都不限)
// .length(4.0f)
// // 車寬,單位(米) (不設置或者設置為0 都不限)
// .width(3.2f)
// // 車高,單位(米) (不設置或者設置為0 都不限)
// .height(3.5f)
// // 車重,單位(噸) (不設置或者設置為0 都不限)
// .weight(5.2f)
// // 車牌
// .no("湘L4A929");
// 調用調起導航方法
CldMapNavigation.openCldHYMapNavi(para, this);
} ?
轉載于:https://www.cnblogs.com/wangyuehong/p/8202864.html
總結
- 上一篇: 2021全网最强视频剪辑神器,全能易用的
- 下一篇: PS平面设计教程nbsp;利用路径及画…