android 高德路线规划百度地图规划的路线能自定义么

写到这里差不多百度地图系列要讲得东西也讲的差不多了。这篇博文主要是讲,百度地图的路线规划这个功能,本次例子以驾车路线规划来说明的。
在上个博文百度地图之四 Poi的demo 的基础上我们添加了一个搜索路线的按钮。
android:id="@+id/bt_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="搜索路线"/&
首先先获取起始点的坐标,然后调用路线规划接口主要代码如下
LatLng from = new LatLng(Double.parseDouble(mStartPosition.getLatitude()),
Double.parseDouble(mStartPosition.getLongitude()))
LatLng dest = new LatLng(Double.parseDouble(mEndPosition.getLatitude()),
Double.parseDouble(mEndPosition.getLongitude()))
//设置起终点信息,对于tranist search 来说,城市名无意义
PlanNode stNode = PlanNode.withLocation(from)
PlanNode enNode = PlanNode.withLocation(dest)
// 实际使用中请对起点终点城市进行正确的设定
mSearch.drivingSearch((new DrivingRoutePlanOption())
.from(stNode)
.to(enNode))
调用完接口后还需监听返回的结果,当然因为我这边是调用的驾车路线的接口,所以只监听驾车的路线返回结果,还有走路和坐车两种的路线规划,如有需要也可以自行试试。
/route plan
public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
public void onGetDrivingRouteResult(DrivingRouteResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
mBaiduMap.clear();
DrivingRouteOverlay overlay = new MyDrivingRouteOverlay(mBaiduMap);
mrouteOverlay =
mBaiduMap.setOnMarkerClickListener(overlay);
overlay.setData(result.getRouteLines().get(0));
overlay.addToMap();
overlay.zoomToSpan();
private class MyDrivingRouteOverlay extends DrivingRouteOverlay {
public MyDrivingRouteOverlay(BaiduMap baiduMap) {
super(baiduMap);
public BitmapDescriptor getStartMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.ic_baidumap_start);
public BitmapDescriptor getTerminalMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.ic_baidumap_destination);
/route plan
最后要主要一点baidu.mapapi.overlayutil.DrivingRouteOverlay 和baidu.mapapi.overlayutil.OverlayManager 两个类是没有在百度地图sdk 中的,需要从将官方的demo 中的baidu.mapapi.overlayutil文件夹拷贝到自己的工程java 文件夹下。才可以调用路线规划。
完整的主程序的代码如下:
package com.hand.jimda.mybaidumap.activity
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import com.baidu.location.BDLocation
import com.baidu.location.BDLocationListener
import com.baidu.location.LocationClient
import com.baidu.location.LocationClientOption
import com.baidu.mapapi.SDKInitializer
import com.baidu.mapapi.map.BaiduMap
import com.baidu.mapapi.map.BitmapDescriptor
import com.baidu.mapapi.map.BitmapDescriptorFactory
import com.baidu.mapapi.map.MapPoi
import com.baidu.mapapi.map.MapStatus
import com.baidu.mapapi.map.MapStatusUpdateFactory
import com.baidu.mapapi.map.Marker
import com.baidu.mapapi.map.MarkerOptions
import com.baidu.mapapi.map.MyLocationConfiguration
import com.baidu.mapapi.map.MyLocationData
import com.baidu.mapapi.map.OverlayOptions
import com.baidu.mapapi.map.TextureMapView
import com.baidu.mapapi.model.LatLng
import com.baidu.mapapi.search.core.RouteLine
import com.baidu.mapapi.search.core.SearchResult
import com.baidu.mapapi.search.geocode.GeoCodeResult
import com.baidu.mapapi.search.geocode.GeoCoder
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener
import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult
import com.baidu.mapapi.search.route.DrivingRoutePlanOption
import com.baidu.mapapi.search.route.DrivingRouteResult
import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener
import com.baidu.mapapi.search.route.PlanNode
import com.baidu.mapapi.search.route.RoutePlanSearch
import com.baidu.mapapi.search.route.TransitRouteResult
import com.baidu.mapapi.search.route.WalkingRouteResult
import com.hand.jimda.mybaidumap.R
import com.hand.jimda.mybaidumap.model.MapPosition
import com.hand.jimda.mybaidumap.view.ChoosePosDlg
import thirdpart.baidu.mapapi.overlayutil.DrivingRouteOverlay
import thirdpart.baidu.mapapi.overlayutil.OverlayManager
public class MainMapActivity extends AppCompatActivity implements View.OnClickListener,OnGetGeoCoderResultListener,OnGetRoutePlanResultListener {
TextView mTvinfo
TextureMapView mMapView = null
private BaiduMap mBaiduMap
private Marker mMark
////loc//////
private MyLocationListener mLocationListener
private LocationClient mLocationClient
private MyLocationConfiguration.LocationMode mCurrentMode
private GeoCoder mGeoSearch
private TextView mTxtStartPos
private TextView mTxtEndPos
private String mCity
private MapPosition mStartPosition
private MapPosition mEndPosition
//RoutePlan
private Button mSearchButton
RouteLine mroute = null
OverlayManager mrouteOverlay = null
private TextView popupText = null
RoutePlanSearch mSearch = null
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
SDKInitializer.initialize(getApplicationContext())
setContentView(R.layout.activity_main_map)
mMapView = (TextureMapView) findViewById(R.id.bmapView)
mBaiduMap = mMapView.getMap()
initview()
private void initview() {
mStartPosition =new MapPosition()
mEndPosition =new MapPosition()
mTvinfo =(TextView)findViewById(R.id.tv_info)
mTxtStartPos = (TextView) findViewById(R.id.tv_start_pos)
mTxtEndPos = (TextView) findViewById(R.id.tv_end_pos)
mSearchButton =(Button)findViewById(R.id.bt_search)
mSearchButton.setOnClickListener(this)
mTxtStartPos.setOnClickListener(this)
mTxtEndPos.setOnClickListener(this)
// 初始化路线规划模块,注册事件监听
mSearch = RoutePlanSearch.newInstance()
mSearch.setOnGetRoutePlanResultListener(this)
public void onClick(View view) {
switch (view.getId()){
case R.id.tv_start_pos: {
ChoosePosDlg.DlgListener listener = new ChoosePosDlg.DlgListener() {
public void choosePossuccess(MapPosition mapPosition) {
mStartPosition=mapPosition
mTxtStartPos.setText(mapPosition.getName())
ChoosePosDlg.registerListener(listener)
new ChoosePosDlg(this, R.style.bottom_animation_dlg,mCity).show()
case R.id.tv_end_pos: {
ChoosePosDlg.DlgListener listener = new ChoosePosDlg.DlgListener() {
public void choosePossuccess(MapPosition mapPosition) {
mEndPosition=mapPosition
mTxtEndPos.setText(mapPosition.getName())
ChoosePosDlg.registerListener(listener)
new ChoosePosDlg(this, R.style.bottom_animation_dlg,mCity).show()
case R.id.bt_search:{
if(mStartPosition.getAddress().isEmpty() ||mEndPosition.getAddress().isEmpty()){
Toast.makeText(this, "请先选择起始位置", Toast.LENGTH_SHORT).show()
LatLng from = new LatLng(Double.parseDouble(mStartPosition.getLatitude()),
Double.parseDouble(mStartPosition.getLongitude()))
LatLng dest = new LatLng(Double.parseDouble(mEndPosition.getLatitude()),
Double.parseDouble(mEndPosition.getLongitude()))
//设置起终点信息,对于tranist search 来说,城市名无意义
PlanNode stNode = PlanNode.withLocation(from)
PlanNode enNode = PlanNode.withLocation(dest)
// 实际使用中请对起点终点城市进行正确的设定
mSearch.drivingSearch((new DrivingRoutePlanOption())
.from(stNode)
.to(enNode))
protected void onDestroy() {
super.onDestroy()
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy()
mLocationClient.stop()
mGeoSearch.destroy()
mSearch.destroy()
protected void onResume() {
super.onResume()
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume()
mLocationClient.start()
protected void onPause() {
super.onPause()
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause()
mLocationClient.stop()
//////////////////////////////////////////////////////////////////////////////////
private void intloc() {
mBaiduMap.setMyLocationEnabled(true)
mLocationClient = new LocationClient(this)
mLocationListener = new MyLocationListener()
mLocationClient.registerLocationListener(mLocationListener)
initLocation()
public class MyLocationListener implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
mBaiduMap.setMyLocationEnabled(true)
mCity =location.getCity()
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build()
// 设置定位数据
mBaiduMap.setMyLocationData(locData)
// 设置定位图层的配置(定位模式,是否允许方向信息,用户自定义定位图标)
//mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.navi_map_gps_locked)
MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, null)
mBaiduMap.setMyLocationConfigeration(config)
//以我的位置为中心
LatLng latlng = new LatLng(location.getLatitude(), location.getLongitude())
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLng(latlng))
private void initLocation() {
LocationClientOption option = new LocationClientOption()
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy
option.setCoorType("bd09ll")
int span = 10000
// option.setScanSpan(span)
option.setIsNeedAddress(true)
option.setOpenGps(true)
option.setLocationNotify(true)
option.setIsNeedLocationDescribe(true)
option.setIsNeedLocationPoiList(true)
option.setIgnoreKillProcess(false)
option.SetIgnoreCacheException(false)
option.setEnableSimulateGps(false)
mLocationClient.setLocOption(option)
mLocationClient.start()
private void initGEO() {
mGeoSearch = GeoCoder.newInstance()
mGeoSearch.setOnGetGeoCodeResultListener(this)
//////////////////////////////////////////////////////////////////////////////////
mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() {
public void onMapClick(LatLng latLng) {
final LatLng lat = latLng
mGeoSearch.reverseGeoCode(new ReverseGeoCodeOption()
.location(lat))
public boolean onMapPoiClick(MapPoi mapPoi) {
return false
//////////////////////////////BaiduMap.OnMapClickListener///////////////////////////////////
///////////////OnGetGeoCoderResultListener////////////////////////////////////////////
public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
if (TextUtils.isEmpty(reverseGeoCodeResult.getAddress())) {
Toast.makeText(MainMapActivity.this, "地点解析失败,请重新选择", Toast.LENGTH_SHORT).show()
if (null != mMark) {
mMark.remove()
mTvinfo.setText(reverseGeoCodeResult.getAddressDetail().district + reverseGeoCodeResult.getAddressDetail().street + reverseGeoCodeResult.getAddressDetail().streetNumber)
/////show pos
LatLng from = new LatLng(reverseGeoCodeResult.getLocation().latitude,
reverseGeoCodeResult.getLocation().longitude)
BitmapDescriptor bdB = BitmapDescriptorFactory
.fromResource(R.drawable.ic_baidumap_start)
OverlayOptions ooP = new MarkerOptions().position(from).icon(bdB)
mMark = (Marker) (mBaiduMap.addOverlay(ooP))
MapStatus mMapStatus = new MapStatus.Builder().target(from)
/////show pos
///////////////OnGetGeoCoderResultListener////////////////////////////////////////////
//////////////////////////////////route plan
public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
public void onGetDrivingRouteResult(DrivingRouteResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show()
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
//起终点或途经点地址有岐义,通过以下接口获取建议查询信息
//result.getSuggestAddrInfo()
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
mBaiduMap.clear()
// mroute = result.getRouteLines().get(0)
DrivingRouteOverlay overlay = new MyDrivingRouteOverlay(mBaiduMap)
mrouteOverlay = overlay
mBaiduMap.setOnMarkerClickListener(overlay)
overlay.setData(result.getRouteLines().get(0))
overlay.addToMap()
overlay.zoomToSpan()
//定制RouteOverly
private class MyDrivingRouteOverlay extends DrivingRouteOverlay {
public MyDrivingRouteOverlay(BaiduMap baiduMap) {
super(baiduMap)
public BitmapDescriptor getStartMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.ic_baidumap_start)
public BitmapDescriptor getTerminalMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.ic_baidumap_destination)
//////////////////////////////////route plan
运行效果如图:
本文已收录于以下专栏:
相关文章推荐
最终实现效果图:
实现过程主要注意有两个:
(1)com.baidu.mapapi.overlayutil包的导入。
(2)在百度地图RoutePlaneDemo里面添加定位,定位到当前位置...
本文主要内容baoh
上篇讲到百度地图基础地图的使用,这篇主要实现路线规划和自定义图层展示的功能,同时包括地图视野缩放旋转视野跟随等功能效果图:如何进行路径规划和展示路线:首先路径规划需要2个坐标分别为起点和终点,包含经度...
Android百度地图(六)自定义导航路线规划兴奋加激动。。。本文代码在http://blog.csdn.net/xyzz609/article/details/的基础上进一步修改,有...
今天我将给大家分享路径规划接口的使用。
       首先,我们要构建一个最基本的地图应用,具体介绍请参考:百度地图SDK for Android【Demo地图展示】
    &#160...
1路径服务简介
        路径规划实际上是一种特殊的检索服务,因此,在使用路径规划服务之前首先要对检索相关的方法进行初始化,具体介绍请参考检索服务部分中的第一章节。
    &#1...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)查看: 6409|回复: 4
百度地图要怎样才可以把电脑自定义的路径作为导航路径?
发布安卓地图
支持分辨率(可多选):
Android4.0&
资源分类(可多选):
本帖最后由 一路容易 于
23:12 编辑
如题 发觉可以电脑自定义路径 可以同步到手机端 但无法吧自定义路径作为导航路径来语音导航&&比如 我电脑设定A到B 经过C&&但同步到手机后&&百度地图仍旧按照他自己的设计跳过C 来直接导航从A到B
要如何操作 才可以把自定义的路径 作为语音导航路径呢?
搜“骑行路径规划”,学习一下就可以操作了
与狼共舞 发表于
搜“骑行路径规划”,学习一下就可以操作了
感谢指导!
初步看了下 很好的一个东西 但不知道如果我要导入百度地图的话 是选择哪一种地图输出方式? 我新人 不明白问题很多
另外 这个软件制作好的 路径导入哪一个导航软件后 可以语音导航的? 我们是摩托车使用 需要语音播报尽量少低头看屏幕
这软件能输出三种格式的路径文件,因涉及范围太广,如何用需要你继续深入学习
Powered by上篇讲到百度地图基础地图的使用,这篇主要实现路线规划和自定义图层展示的功能,同时包括地图视野缩放旋转视野跟随等功能
如何进行路径规划和展示路线:
首先路径规划需要2个坐标分别为起点和终点,包含经度和纬度,百度提供了一个类来封装经纬度
com.baidu.mapapi.model.LatLng.LatLng,其实就是一个包含2个浮点数的实体类。
double mLat1 = 39.915291;
double mLon1 = 116.403857;
double mLat2 = 40.056858;
double mLon2 = 116.308194;
LatLng loc_start = new LatLng(mLat1,mLon1);
LatLng loc_end = new LatLng(mLat2, mLon2);
接下来初始化搜索类RoutePlanSearch,并注册搜索监听:
mSearch = RoutePlanSearch.newInstance()
mSearch.setOnGetRoutePlanResultListener(this)
搜索监听器需要实现下面几个方法,分别返回的是驾车路线、公交车行车线、步行路线三种方案:
public void onGetDrivingRouteResult(DrivingRouteResult result) {
public void onGetTransitRouteResult(TransitRouteResult result) {
public void onGetWalkingRouteResult(WalkingRouteResult result) {
我只需要驾车路线,所以只重新onGetDrivingRouteResult接口就可以了:
public void onGetDrivingRouteResult(DrivingRouteResult result) {
//TODO: 在地图上绘制驾车路线
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
//起终点或途经点地址有岐义,通过以下接口获取建议查询信息
//result.getSuggestAddrInfo()
Log.d("baiduMap", "起终点或途经点地址有岐义")
if (result.error == SearchResult.ERRORNO.PERMISSION_UNFINISHED) {
//权限鉴定未完成则再次尝试
Log.d("baiduMap", "权限鉴定未完成,再次尝试")
startSearch(loc_start,loc_end)
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show()
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
route = result.getRouteLines().get(0)
WalkingRouteOverlay overlay = new MyWalkingRouteOverlay(mBaidumap)
mBaidumap.setOnMarkerClickListener(overlay)
overlay.setData(result.getRouteLines().get(0))
overlay.addToMap()
overlay.zoomToSpan()
在上面的代码中对返回的结果进行了多次验证以保证容错性,只有在返回NO_ERROR时才绘制路线,注意PERMISSION_UNFINISHED这个错误,这个错误是在我们调用了搜索方法之后,但是sdk还没有获取到当前客户端是否有使用搜索功能的权限则会出现这个错误,就是说sdk还在获取权限资格的时候我们提前调用了搜索方法,通常情况下在我们开始搜索的时候已经获取到权限了,但是如果你的应用在地图页面启动的时候就需要开始搜索路线就有可能造成这个错误,但是我们又有这个需求,那么怎么办呢。我们只需要检查PERMISSION_UNFINISHED这个异常,如果返回的是这个异常的话,那么再重新请求搜索就可以了。如上的startSearch(loc_start,loc_end)方法,就是我自定义的一个方法,用于开始搜索。
我把这个方法贴上:
private void startSearch(Location start,Location end) {
PlanNode stNode = PlanNode.withLocation(new LatLng(start.getLat(), start.getLng()));
PlanNode enNode = PlanNode.withLocation(new LatLng(end.getLat(), end.getLng()));
mSearch.drivingSearch((new DrivingRoutePlanOption()).from(stNode).to(enNode));
最近查看官方的更新日志,在3.6.0的更新日志中给出了优化了这个错误并另一种解决方法,下面贴上日志原文:
【 修 复 】
1、 鉴权结果广播策略调整,当失败、成功或鉴权状态变化时均广播通知(SDKInitializer新增key验证成功广播常量SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)
鉴权未完成时,发起检索失败,请监听广播,当SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK时再次发起检索
新版的SDK在遇到权限未鉴定完成的时候会发送SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK广播,可以通过监听这个广播来处理这个异常。
在获取路径的回调中调用overlay.addToMap()方法来绘制路径时,最好加入try catch来捕获异常,因为,百度规定搜索出的路线节点超过1000个时,这个方法会抛出异常。但在实际使用中我发现小于1000个也偶尔会抛出异常,比如搜索成都到拉萨的行车路线,3.5.0的官方demo也发生异常崩溃了。但是升级到3.6.0之后似乎修复了这个bug,不再崩溃也能正常显示,但是更新日志中却没有写到,所以我任然建议这里手动捕获处理一下:
//路线查询成功
overlay.setData(result.getRouteLines().get(0))
overlay.addToMap()
overlay.zoomToSpan()
} catch (Exception e) {
e.printStackTrace()
Toast.makeText(this, "路径规划异常", Toast.LENGTH_SHORT).show()
onGetDrivingRouteResult()方法中返回NO_ERROR时,我们把路径绘制到地图上,其中的MyWalkingRouteOverlay是自定义的路线绘制的类,继承自DrivingRouteOverlay,该类提供了几个方法用于绘制起点、终点图标和路径颜色等方法,我们可以重写它来,达到自定义绘制的效果:
private class MyDrivingRouteOverlay extends DrivingRouteOverlay {
public MyDrivingRouteOverlay(BaiduMap baiduMap) {
super(baiduMap);
public int getLineColor() {
return Color.RED;
public BitmapDescriptor getStartMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.myicon_start);
public BitmapDescriptor getTerminalMarker() {
return BitmapDescriptorFactory.fromResource(R.drawable.myicon_end);
这样就可以在界面上绘制出自定义的路线了,自百度更新3.6.0之后更是开源了路径绘制部分的源代码,现在下载最新的可以修改源码绘制出带动画的路径。具体就查看官方文档,目前我还没有看过源码,以后再补上。
绘制了路径,通常我们会在起点和终点做2个弹出窗,像下面这样的:
百度提供了在地图上绘制弹出窗的方法,同时也可以设置它的动画和点击事件具有交互性,但是SDK强制规定了这样的具有交互性的弹出窗在地图中只能有一个,这也就导致我之前遇到的问题,只出现了一个窗口。
对于这个问题,没有什么解决方案,必将是SDK的强制规定。通过查阅资料,了解到有一个替代方案,就是不使用弹出窗,而使用图标,百度地图上图标可以存在多个,这样我们就需要把我们的弹出窗做出图像格式的图标来进行显示,百度提供了这样一种图像格式BitmapDescriptor ,同时提供了把View转换成BitmapDescriptor 的静态方法:
BitmapDescriptorFactory.fromView(View view);
//根据一个 View 创建 Bitmap 描述信息, 当 view 为 null 时返回 null
使用这个方法把我们需要展示的View转换为BitmapDescriptor在用来构造一个覆盖物OverlayOptions:
View popstart = LayoutInflater.from(this).inflate(R.layout.layout_mappop, null, false)
BitmapDescriptor startbitsp = BitmapDescriptorFactory.fromView(popstart)
OverlayOptions startpop = new MarkerOptions().position(new LatLng(纬度,经度)).icon(startbitsp)
然后在需要显示覆盖物的时候,调用如下方法:
mBaiduMap.addOverlay(startpop)
这样就完成了自定义效果的展示,使用下面的方法可以调整覆盖物的横纵偏移量:
MarkerOptions.anchor(0f, 0f)
两个参数否是0-1的浮点数,分别表示横坐标和纵坐标相对应当前位置的偏移比例。
比如起点设置的是0f,1f;终点设置的是0f,0f
本文已收录于以下专栏:
相关文章推荐
1. 通过声明要刷新的activity(Activity_A)为静态变量,然后在一个activity(Activity_B)中直接调用Activity_A中的刷新方法
        在Acti...
Android百度地图(六)自定义导航路线规划兴奋加激动。。。本文代码在http://blog.csdn.net/xyzz609/article/details/的基础上进一步修改,有...
这篇文章主要介绍了android实现百度地图自定义弹出窗口的功能,大家参考使用吧
我们使用百度地图的时候,点击地图上的Marker,会弹出一个该地点详细信...
在第二关我们说了如何查询公交路线图,但前提你得知道公交是几路公交!而一般人知道某个地点,就想去,而不是通过几路公交来查询!所以这关我们来说说如果查询两个地点之间的路线规划【1.骑行路线2.驾车路线3....
实际项目中经常会集成地图,今天就只谈谈百度地图添加自定义Marker这一部分,希望对百度地图集成有这部分需求的小伙伴能有一些帮助。
百度地图文档里面对marker的添加只是很简短的说了常用的添加图...
百度官方提供给开发者使用的多个途经点导航有一个限制是:途经点不超过10个。假设我手上就是有N个途经点需要进行一个轨迹的绘制,怎么办?然而,每个点和下一个点的路线必须是百度建议的路线。1、定义驾车对象:...
公交地图必不可少,而且相对基础地图来说要麻烦一些,所以单独列出来写一篇!此篇是在已经搭建配置好基础地图的基础上来说的,不明白请看:
深入学习百度地图Android SDK v4.0.0【第一关】基础...
不写就会忘,记录下来!其实之前就写过,但是太简单了,只实现了百度地图的定位,返回了一个地址就算完事!现在打算开始系统的好好深入学习一下:
OpenGL出现的频率越来越高了,尽管目前我没有用到,但也记录下来,方便以后扩展!这个没什么好说的,直接上代码绘制!
package cq.cake.chwl.
import android....
本来想学习一下Andriod Wear的开发,但是买不起Wear啊!直接跳过,开始学习周边雷达地图部分!这个功能非常有用,能知道你周围和你使用相同软件的人,牛郎织女一人安装一个,再也不用去鹊桥相会了,...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 自定义路线规划工具 的文章

 

随机推荐