PHP地图规划骑行路径,高德路径规划,自定义骑行路线(适用3D地图)
1,规划路径
LatLonPoint latLonPoint1 = new LatLonPoint(xxx,xxx);
LatLonPoint latLonPoint2 = new LatLonPoint(xxx,xxx);
RouteSearch mRouteSearch = new RouteSearch(this);
mRouteSearch.setRouteSearchListener(this);
final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(
latLonPoint1, latLonPoint2);
RouteSearch.RideRouteQuery query = new RouteSearch.RideRouteQuery(fromAndTo, RouteSearch.RidingDefault);
mRouteSearch.calculateRideRouteAsyn(query);// 异步路径规划骑行模式查询
2,监听并得到路径规划结果
@Override
public void onBusRouteSearched(BusRouteResult driveRouteResult, int i) {
}
@Override
public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int i) {
}
@Override
public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int i) {
}
@Override
public void onRideRouteSearched(RideRouteResult rideRouteResult, int i) {
RidePath drivePath = rideRouteResult.getPaths().get(0);
RideRouteOverlay drivingRouteOverlay = new RideRouteOverlay(this, aMap, drivePath, rideRouteResult.getStartPos(), rideRouteResult.getTargetPos());//自定义路径样式
drivingRouteOverlay.setNodeIconVisibility(false);//隐藏转弯的节点
drivingRouteOverlay.addToMap();
drivingRouteOverlay.zoomToSpan();
}
3,自定义路径样式
import android.content.Context;
import com.amap.api.maps.AMap;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.PolylineOptions;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.route.RidePath;
import com.amap.api.services.route.RideStep;
import com.dz.gghelp.R;
import java.util.ArrayList;
import java.util.List;
/**
* 骑行路线图层类。在高德地图API里,如果要显示步行路线规划,可以用此类来创建骑行路线图层。如不满足需求,也可以自己创建自定义的骑行路线图层。
*
* @since V3.5.0
*/
public class RideRouteOverlay extends RouteOverlay {
private PolylineOptions mPolylineOptions;
private BitmapDescriptor walkStationDescriptor = null;
private RidePath ridePath;
/**
* 通过此构造函数创建骑行路线图层。
*
* @param context 当前activity。
* @param amap 地图对象。
* @param path 骑行路线规划的一个方案。详见搜索服务模块的路径查询包(com.amap.api.services.route)中的类 WalkStep。
* @param start 起点。详见搜索服务模块的核心基础包(com.amap.api.services.core)中的类LatLonPoint。
* @param end 终点。详见搜索服务模块的核心基础包(com.amap.api.services.core)中的类LatLonPoint。
* @since V3.5.0
*/
public RideRouteOverlay(Context context, AMap amap, RidePath path,
LatLonPoint start, LatLonPoint end) {
super(context);
this.mAMap = amap;
this.ridePath = path;
startPoint = convertToLatLng(start);
endPoint = convertToLatLng(end);
}
public static LatLng convertToLatLng(LatLonPoint latLonPoint) {
return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
}
/**
* 添加骑行路线到地图中。
*
* @since V3.5.0
*/
public void addToMap() {
initPolylineOptions();
try {
List ridePaths = ridePath.getSteps();
mPolylineOptions.add(startPoint);
for (int i = 0; i < ridePaths.size(); i++) {
RideStep rideStep = ridePaths.get(i);
LatLng latLng = convertToLatLng(rideStep
.getPolyline().get(0));
addRideStationMarkers(rideStep, latLng);
addRidePolyLines(rideStep);
}
mPolylineOptions.add(endPoint);
addStartAndEndMarker();
showPolyline();
} catch (Throwable e) {
e.printStackTrace();
}
}
/**
* @param rideStep
*/
private void addRidePolyLines(RideStep rideStep) {
mPolylineOptions.addAll(convertArrList(rideStep.getPolyline()));
}
public static ArrayList convertArrList(List shapes) {
ArrayList lineShapes = new ArrayList();
for (LatLonPoint point : shapes) {
LatLng latLngTemp = convertToLatLng(point);
lineShapes.add(latLngTemp);
}
return lineShapes;
}
/**
* @param rideStep
* @param position
*/
private void addRideStationMarkers(RideStep rideStep, LatLng position) {
addStationMarker(new MarkerOptions()
.position(position)
.title("\u65B9\u5411:" + rideStep.getAction()
+ "\n\u9053\u8DEF:" + rideStep.getRoad())
.snippet(rideStep.getInstruction()).visible(nodeIconVisible)
.anchor(0.5f, 0.5f).icon(walkStationDescriptor));
}
/**
* 初始化线段属性
*/
private void initPolylineOptions() {
if (walkStationDescriptor == null) {
walkStationDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.amap_ride);
}
mPolylineOptions = null;
mPolylineOptions = new PolylineOptions();
mPolylineOptions.color(getDriveColor()).width(getRouteWidth());
}
private void showPolyline() {
addPolyLine(mPolylineOptions);
}
}
PHP地图规划骑行路径,高德路径规划,自定义骑行路线(适用3D地图)相关推荐
- 【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行
先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别? 回答: 1.路线规划,指的是为用户提供3条路线推荐.[高德]在提供路线规划的时候,会提供用户自定义路线规划功能,这是别家没有做 ...
- 地图推荐Openlayers,mapBox,arcgis,移动端推荐leafletJS,3D地图 cesium.js
1.OpenLayers 的核心組件是地图(old/Map) OpenLayers是一个开源JavaScript库,它提供了许多丰富的方法来构建.它还支持许多事件和控件. 只需要把我们所需要的的控件或 ...
- 【3d地图】vue3.0中使用echarts geo3D
文章目录 前言 一.echarts是什么? 二.使用步骤 1.引入echarts库,3d地图必须安装echarts-gl依赖 2.制作地图JSON文件 3.引入到vue组件中 总结 前言 之前我们已经 ...
- 3D地图+智能导航,用微信小程序轻松实现校园内导航
大学都读完还没有走过学校的每一个角落已经是老生常谈了,但新生入学一般更绝望.一般的新生入学,学校需要发动大量的志愿者对新生进行引导,从报道处再到宿舍楼.教学楼.食堂.各办公楼都为新生一一进行讲解,但因 ...
- html引入echart地图点击,基于echarts实现3D地图的定时高亮和点击事件
技术选型 文章所选技术栈:vue.echarts.echarts-gl 安装Vue和echarts 1.安装echarts和echarts-alnpm i echarts --save npm i e ...
- 各省3D地图精美来袭,快来看看有没有你的省份吧
山海鲸可视化致力于打造一套人人都会用的数字孪生技术软件,内有海量精美模板,可直接下载使用,同时有各种3D地图模板和建筑模型模板,今天就带大家看看这些各省3D地图模板吧! 1.写实风3D地图模板 2. ...
- 高德地图api接口文档_在 R 语言里面调用高德地图接口:地理编码与路径规划
你知道从广州南站去珠江新城怎么走么?今天就让我们一起使用 R 语言调用高德地图的地理编码(地址转经纬度)接口和路径规划接口来回答这个问题. 准备工作 注册高德地图,创建应用添加 Key(注意申请 Ke ...
- 2020FME博客大赛——基于FME利用高德路径规划AP实现公共服务设施可达性分析——以厦门山海健康步道为例
作者:郭文义 单位:厦门市环境科学研究院 等时圈(siochrone),指从某点出发,以某种交通方式在特定时间内能到达的距离覆盖的范围(来自于网络).(An isochrones is an isol ...
- a*算法路径规划matlab_【优化求解】基于栅格地图——遗传算法的机器人最优路径规划...
采用栅格对机器人的工作空间进行划分,再利用优化算法对机器人路径优化,是采用智能算法求最优路径的一个经典问题.目前,采用蚁群算法在栅格地图上进行路径优化取得比较好的效果,而利用遗传算法在栅格地图上进行路 ...
- 【地图导航】3D地图软件是如何做路径规划的?为什么准确率这么高
3D地图软件是一类拥有三维地图的功能,可以让大家在电脑上更加直观的看到国内各地的大街小巷,帮助更好的制定出行路线,让旅游出行更加方便快捷.软件还能够提供当地的海拔.建筑等信息,还有高清的实景图片,满足 ...
最新文章
- 关于向Mybatis传递多个参数进行SQL查询的用法
- 通过FxCop来验证.NET编码规范
- 分页查询时如何优化MySQL的性能?
- ux.form.field.SearchField 列表、树形菜单查询扩展
- 利用Bing翻译API简单的实现一个翻译工具
- 红旗linux 进不去图形界面,进不了红旗Linux6.0的图形界面请高手帮忙
- TreeMap1.8源码
- ffmpeg视频播放、格式转化、缩放等命令
- linux软连接j,Linux(ubuntu)安装JLink 驱动
- ThinkPad键盘拆解与清理(附图详解)
- photoshop图层解锁及不能解锁的原因
- 4.20 视频面试字节_光大银行_神策
- 可汗学院 统计学习第一天
- 华为云区块链BCS笔记
- word2016中公式不能用斜体的解决方法
- 你用什么软件做笔记?
- 海康机器人线激光立体相机获取体积测量开始时间点和结束测量时间点以及包裹四个顶角位置信息的可行办法
- 计算机运行慢 卡是什么原因是什么原因,电脑很卡是什么原因
- 金融时间序列分析:8. MA模型实例(Python)
- c语言程序结构体排序,如何用C语言的结构体数组中的某一值排序?