【python实战】批量获得路径规划——高德地图API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【python实战】批量获得路径规划——高德地图API相关的知识,希望对你有一定的参考价值。
参考技术A【python实战】 批量获取经纬度-高德地图API
在上篇中,已经批量获得了经纬度信息,现在需要根据经纬度来进行路径规划,想知道两点之间的距离和路程、花费等信息。
这时候就需要用到高德地图API中的路径规划功能了。
同上篇,先构造出获得经纬度函数便于调用。
理解了上篇的请求参数,路径规划就很好理解了。文档中也有详细解释, 路径规划 中包括步行、公交、驾车、骑行、货车路径规划以及距离测量。
这里以公交路径规划为例。
根据必填项: 自己申请到的Key,起终点的经纬度以及城市 ,就可以返回相关的字段信息。
根据返回结果参数,可以提取很多关于路径规划的信息,这里以 起终点步行距离,路线出租车费用,路线时间,路线费用,路线距离 为例。
在主函数中设定起点和终点,并调用返回信息函数,就能得到每个起点到每个终点的 步行距离,路线出租车费用,路线时间,路线费用,路线距离 信息了。
结果以列表的形式返回,结果如图。
iOS-高德地图路线规划开发记录
1. 骑行路径规划调用
// 获取当前位置作为起点
let beginLocation = FCMapShareTool.shared._userLocationCoordinate2D
let request = AMapRidingRouteSearchRequest.init()
// 路径起始点
request.origin = AMapGeoPoint.location(withLatitude: CGFloat(beginLocation?.latitude ?? 0.00 ), longitude: CGFloat(beginLocation?.longitude ?? 0.00))
// 路径终点
request.destination = AMapGeoPoint.location(withLatitude: CGFloat(location.latitude ), longitude: CGFloat(location.longitude))
// 调用高德地图API
self._searchMap?.aMapRidingRouteSearch(request)
2. 线路绘制到地图详细代码
// 路径规划线路渲染到地图上的详细步骤
// 1. 需要把字符串加工成经纬度
// 2. 把转换好的经纬度装进数组
// 3. 移除以前的线路
// 4. 生成新的线路
// 5. 把新的线路添加到地图上。
// 6. 线路渲染,看下面详细步骤
func onRouteSearchDone(_ request: AMapRouteSearchBaseRequest!, response: AMapRouteSearchResponse!) {
if response.route.paths.count > 0 {
// 取出第一种路线方案
let path = response.route.paths[0]
var corArray = [CLLocationCoordinate2D]()
// 将每段线路中的路径经纬度全部载入corArray中。
for (_,step) in path.steps.enumerated() {
let lineArray = step.polyline.split(separator: ";")
for str in lineArray {
let tempCorArray = str.split(separator: ",")
if tempCorArray.count == 2 {
let tempLong = String(tempCorArray[0])
let tempLat = String(tempCorArray[1])
let cor = CLLocationCoordinate2D.init(latitude: CLLocationDegrees(CGFloat(tempLat.decimalStringToDouble() ?? 0.00)), longitude: CLLocationDegrees(CGFloat(tempLong.decimalStringToDouble() ?? 0.00)))
corArray.append(cor)
}
}
}
if var temp = corArray as? [CLLocationCoordinate2D] {
// 移除旧线路
if let tempPoly = _polyLine {
self.mapView.remove(tempPoly)
}
// 根据corArray数组组建新的线路,并添加到地图上。
let polyline = MAPolyline.init(coordinates: &temp, count: UInt(temp.count))
_polyLine = polyline
self.mapView.add(polyline)
}
}
}
3. 线路绘制
func mapView(_ mapView: MAMapView!, rendererFor overlay: MAOverlay!) -> MAOverlayRenderer! {
if let tempOver = overlay as? MAPolyline {
let polygonView = MAPolylineRenderer.init(polyline: tempOver)
// 参数设置
polygonView?.lineWidth = 8.0
polygonView?.strokeColor = UIColor.muColor(.blue)
polygonView?.fillColor = UIColor.muColor(.red)
polygonView?.lineJoinType = kMALineJoinRound
polygonView?.lineCapType = kMALineCapRound
return polygonView
}
return nil
}
以上是关于【python实战】批量获得路径规划——高德地图API的主要内容,如果未能解决你的问题,请参考以下文章