北京网站建设产品介绍,怎样能创建一个网站,结构优化设计,网站建设与管理视频教程作为主项目功能的一部分#xff0c;这部分我想单独记录下来
一#xff0c;注册高德kpi【进行实名认证】
高德开放平台 | 高德地图API (amap.com)
二#xff0c;申请Key 三#xff0c;进入路径规划-API文档-开发指南-Web服务 API|高德地图API (amap.com) 找到你需要的路径…作为主项目功能的一部分这部分我想单独记录下来
一注册高德kpi【进行实名认证】
高德开放平台 | 高德地图API (amap.com)
二申请Key 三进入路径规划-API文档-开发指南-Web服务 API|高德地图API (amap.com) 找到你需要的路径规划的文档我选的是“驾车路径规划” 这一部分也便是获取数据的关键了
对应的代码如下
首先将官方给的url进行添加我加入了起始地点终止地点以及starategy【选择不同的策略】以及key【刚才申请的key】
def get_route(start, end, mode, amap_key):# 这里的url中选择是步行公交还是驾车路径本文中driving?表示驾车具体介绍见https://lbs.amap.com/api/webservice/guide/api/directionurl fhttps://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]# print(route)time data[route][paths][0][duration] # 当前的行驶时间print(time)return routeelse:print(请求失败请检查输入参数。)return None 底下获取route路线和time时间的两行代码写法是 依次类推相当于就是先找到这个大类再去找小类其次就是“[0]”,代表的是第一条路径的对应的属性如果你不想也可以改为[1]......
def exchange_route(route):if route:for i, step in enumerate(route):list_latlon.append(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, filename):# 给出的坐标系为GCJ-02如果需要测试google地图需要进行坐标转换tri np.array(list(zip(Lat, Lon)))san_map folium.Map(location[34.155709, 108.904262],zoom_start13,# 高德街道图# tileshttp://webrd02.is.autonavi.com/appmaptile?langzh_cnsize1scale1style7x{x}y{y}z{z},tileshttps://webrd01.is.autonavi.com/appmaptile?langzh_cnsize16scale1style8x{x}y{y}z{z},# 高德卫星图attrdefault)folium.PolyLine(tri, color#3388ff, fillFalse).add_to(san_map)marker_cluster plugins.MarkerCluster().add_to(san_map)for lat, lon in zip(Lat, Lon):folium.Marker([lat, lon], colorred).add_to(marker_cluster)file_path f{filename}.htmlsan_map.save(file_path) 代码分析 exchange_route(route)
接收一个路线参数然后提取其中每个步骤的经纬度坐标信息并存储在list_latlon列表中def updated_maps(ending_location, user_id):将给定的经纬度坐标存放在一个列表当中然后调用folium获取从起点开始借助多个经纬度坐标点绘制路线图同时进行标签然后生成html文件保存 san_map folium.Map(location[34.155709, 108.904262],zoom_start13,# 高德街道图# tileshttp://webrd02.is.autonavi.com/appmaptile?langzh_cnsize1scale1style7x{x}y{y}z{z},tileshttps://webrd01.is.autonavi.com/appmaptile?langzh_cnsize16scale1style8x{x}y{y}z{z},# 高德卫星图attrdefault) zoom_start 是当前地图的放大倍数 tiles是瓦片服务 这是我找到的一个宝藏地址 https://www.cnblogs.com/HandyLi/p/11137367.html 四地图显示
使用qwebengine控件去显示网页 def show_path(self, user_id):self.qwebengine.setFixedSize(700, 400)self.grid_layout.addWidget(self.qwebengine, 3, 1, 1, 1)# path file:\\ os.getcwd() \\showpoint.htmlpath file:\\ os.getcwd() f\\map_{user_id}.htmlpath path.replace(\\, /)self.qwebengine.load(QUrl(path))