日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP地图规划骑行路径,高德路径规划,自定义骑行路线(适用3D地图)

發布時間:2023/12/20 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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地图)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。