我的博客好像跳度比较大,不少内容都涉及,但我是做ros组合导航的,其他的或者是项目设计,或者是因为兴趣,或者是随笔记下来。
无聊写来玩下的小demo,本来试图在硕士期间研究下这个课题即农机从仓库到田间的路径转移,但可惜没时间弄了。提供一种思路和一点demo代码

import requests
from OpenSSL import SSL
import numpy as np
import folium
from folium import plugins# ##########################################全局变量#############################################################
# 替换为你的高德API密钥,在高德开放平台里注册-》应用管理-》创建新应用-》服务平##台那里选择web服务-》记住生成的key,这里没有密钥的。后续填写到amap_key中
amap_key = 'xxxxxxxxxxxxxxxxxxxxxxx'
list_latlon=[]
Lon = []
Lat = []# 仓库经纬度(格式:经度,纬度)
warehouse_location = '113.637xxxxx,23.2434xxxx'# 农田经纬度(格式:经度,纬度),换成自己的
farm_location = '113.63837xxxx,23.24199xxxx'# 路径规划策略,可以选择0~5的整数,具体含义可以参考高德API文档 具体介绍见:https://lbs.amap.com/api/webservice/guide/api/direction
# 本文用的是驾车路径,
# 0,速度优先,此路线不一定距离最短
# 1,费用优先,不走收费路段,且耗时最少的路线
# 2,距离优先,仅走距离最短的路线,但是可能存在穿越小路/小区的情况
# 3,速度优先,不走快速路,例如京通快速路(因为策略迭代,建议使用13)
# 4,躲避拥堵,但是可能会存在绕路的情况,耗时可能较长
# 5,多策略(同时使用速度优先、费用优先、距离优先三个策略计算路径)。
# 其中必须说明,就算使用三个策略算路,会根据路况不固定的返回一~三条路径规划信息。
# 6,速度优先,不走高速,但是不排除走其余收费路段
# 7,费用优先,不走高速且避免所有收费路段
# 8,躲避拥堵和收费,可能存在走高速的情况,并且考虑路况不走拥堵路线,但有可能存在绕路和时间较长
# 9,躲避拥堵和收费,不走高速
strategy = 2
# ######################################################################################################## 获取高德地图的路径规划点
def get_route(start, end, mode, amap_key):# 这里的url中选择是步行,公交还是驾车路径,本文中driving?表示驾车,具体介绍见:https://lbs.amap.com/api/webservice/guide/api/directionurl = f'https://restapi.amap.com/v3/direction/driving?origin={start}&destination={end}&strategy={mode}&key={amap_key}'response = requests.get(url)data = response.json()if data['status'] == '1':route = data['route']['paths'][0]['steps']return routeelse:print('请求失败,请检查输入参数。')return Noneroute = get_route(warehouse_location, farm_location, strategy, amap_key)if route:for i, step in enumerate(route):list_latlon.append(step["polyline"])print(f'步骤 {i+1}: {step["instruction"]}:{step["polyline"]}')else:print('无法获取路线规划。')# 获取街道地图
for item in list_latlon:points = item.split(';')for point in points:coords = point.split(',')Lon.append(float(coords[0]))Lat.append(float(coords[1]))# 绘制地图
def PlotLineOnMap(Lat, Lon):# 给出的坐标系为GCJ-02,如果需要测试google地图,需要进行坐标转换tri = np.array(list(zip(Lat, Lon)))san_map = folium.Map(location=[23.243466, 113.637713],zoom_start=16,# 高德街道图# tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',tiles='http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', # 高德卫星图attr='default')folium.PolyLine(tri, color='#3388ff').add_to(san_map)marker_cluster = plugins.MarkerCluster().add_to(san_map)for lat, lon in zip(Lat, Lon):folium.Marker([lat, lon], color='red').add_to(marker_cluster)san_map.save('showpoint.html')def main():PlotLineOnMap(Lat, Lon)if __name__ == '__main__':main()

直接复制到py里可用,实现的效果就是给定起点终点经纬度,然后然后调用高德导航api,用来路径规划,然后获取规划到的路径规划点,再在地图上画出来看下规划的啥样。
结果如下:

这里面4代表四个路径点,只是因为地图无法再放大,你用鼠标点下可以显示有四个坐标点的。代码生成的是showpoint.html文件,自己在文件夹里用浏览器打开就成了。

说下这种方式的弊端,

生成的是小数点后6位经纬度,基本就是米级别的导航精度,想用在必须是厘米级的农机里不可能,后续思路可能是用无人机扫面的高精度地图和这个匹配或者说跟高德厂家谈直接要高精度地图?但其实在农业环境里不少地方都是很偏僻,高德可能都没开放那块地图,那这种方案可以糊弄下不懂技术的导师,但实际是没法用来导航的。

python调用高德地图api获取路径规划,然后规划好点显示在地图上(农机路径转移)相关推荐

  1. Python调用百度地图api获取起点终点路线规划距离和预估时长

    现有起点和终点坐标值(经纬度lng.lat),目的是通过百度地图开发者平台的路线规划功能获取起点终点路线规划距离和预估时长,百度地图开发者平台路线规划使用说明网址为:http://lbsyun.bai ...

  2. java获取经纬度_java调用高德地图api获取某个位置的经纬度

    java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...

  3. html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...

    vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...

  4. python调用高德api路径规划_Python调用高德API实现批量地址转经纬度并写入表格的功能...

    本段代码是先将需要转换经纬度的地址爬取在 '地址.csv' 文件里,文件截图示例: 代码展示 # coding=utf-8 # SPL # 时间:2020/12/20 21:15 import csv ...

  5. Python调用高德地图API实现经纬度换算、地图可视化

    作者 | 糖甜甜甜 出品 | 经管人学数据分析 Python调用高德地图API实现经纬度换算.地图可视化 前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地 ...

  6. 你还在为高德地图找不到门牌号等详细地址而烦恼吗?你还在等什么——Python调用高德地图API实现经纬度换算、地图可视化

    Python调用高德地图API实现经纬度换算.地图可视化 前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出 ...

  7. python调用高德地图api 可视化_Python调用高德地图API实现经纬度换算、地图可视化...

    前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出的轻量级可视化平台上实现一键式地图可视化,这其中需要申请密 ...

  8. 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度

    调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...

  9. c语言api获取百度地图,H5调用百度地图API获取地理位置

    //获取当前位置 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r){ alert ...

最新文章

  1. java 登录按钮响应数据库_用户登录功能的实现—从前端到后台(包括数据库)...
  2. 行业 平均年龄_2019中国“新生力”白皮书:平均年龄35岁,千万资产家庭达198万户!...
  3. 台式计算机攒机报告,计算机装机报告.doc
  4. WF4.0入门系列1——创建一个简单的工作流
  5. 中职计算机属于专业课还是文化课,对中职计算机专业建设探讨.doc
  6. Python 实现简单的爬虫
  7. Android Handler处理机制 ( 三 ) ——Handler,Message,Looper,MessageQueue
  8. 重磅发布|蚂蚁金服与电子标准院达成战略合作 共同推进数据安全行业的标准化...
  9. 目标检测经典算法集锦
  10. 计算机组成原理 罗克露 pdf,罗克露计算机组成原理课件(一).pdf
  11. Java - Log
  12. 使用Unity连接Bmob后端云
  13. RoughSets属性约简算法
  14. iOS解析新浪微博的@##以及URL链接并展示
  15. SATA硬盘和SATA2硬盘的区别
  16. 【程序源代码】一个安卓查询类app制作的​开源项目
  17. php程序解压的目录在哪,PHP可以解压taz文件吗? (.tar.Z的)
  18. Commvault资源集合(20191009)
  19. ⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数
  20. 命名实体识别NER探索(1)

热门文章

  1. Spring整个Mybatis
  2. css/css3总结(一)
  3. 四款堪比真人声音的配音软件
  4. 计算机考研复试老师喜欢问什么,2019考研计算机复试:你会是老师喜欢的考生类型吗?...
  5. oracle星型查询,优化星型查询
  6. 大数据发现非法传销网络
  7. laravel8实现生成二维码,二维码中间添加图片
  8. day02 linux常用命令
  9. kswapd0进程在CentOS下CPU占用率过高
  10. 进入MySQL的两种方法