实验任务(实验题目、目的)

Implement a shortest path algorithm and apply it to the national railway system.以全国主要城市为图的顶点, 铁路连接为图的边, 距离作为加权, 设计完成一个最短路径自动查找系统. 输入为出发城市和目标城市, 输出为最短路径和距离.

任务分析

实现思路
在研究、挖掘GPS位置数据、轨迹数据的过程中,地理信息的可视化展示是非常关键的一步。
folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图。

folium.map数:https://python-visualization.github.io/folium/modules.html#module-folium.maplocation:tuple或list类型输入,用于控制初始地图中心点的坐标,格式为(纬度,经度)或[纬度,经度],默认为Nonewidth:int型或str型,int型时,传入的是地图宽度的像素值;str型时,传入的是地图宽度的百分比,形式为'xx%'。默认为'100%'height:控制地图的高度,格式同widthtiles:str型,用于控制绘图调用的地图样式,默认为'OpenStreetMap',也有一些其他的内建地图样式;也可以传入'None'来绘制一个没有风格的朴素地图,或传入一个URL来使用其它的自选osm可选的样式包括:”OpenStreetMap””Stamen Terrain”, “Stamen Toner”, “Stamen Watercolor””CartoDB positron”, “CartoDB dark_matter””Mapbox Bright”, “Mapbox Control Room” (Limited zoom)”Cloudmade” (Must pass API key)”Mapbox” (Must pass API key)max_zoom:int型,控制地图可以放大程度的上限,默认为18attr:str型,当在tiles中使用自选URL内的osm时使用,用于给自选osm命名control_scale:bool型,控制是否在地图上添加比例尺,默认为False即不添加no_touch:bool型,控制地图是否禁止接受来自设备的触控事件譬如拖拽等,默认为False,即不禁止
Heatmap Parameters
data (list of points of the form [lat, lng] or [lat, lng, weight]) – The points you want to plot. You can also provide a numpy.array of shape (n,2) or (n,3).
name (string, default None) – The name of the Layer, as it will appear in LayerControls.
min_opacity (default 1.) – The minimum opacity the heat will start at.
max_zoom (default 18) – Zoom level where the points reach maximum intensity (as intensity scales with zoom), equals maxZoom of the map by default
max_val (float, default 1.) – Maximum point intensity
radius (int, default 25) – Radius of each “point” of the heatmap
blur (int, default 15) – Amount of blur
gradient (dict, default None) – Color gradient config. e.g. {0.4: ‘blue’, 0.65: ‘lime’, 1: ‘red’}
overlay (bool, default True) – Adds the layer as an optional overlay (True) or the base layer (False).
control (bool, default True) – Whether the Layer will be included in LayerControls.
show (bool, default True) – Whether the layer will be shown on opening (only for overlays).
涉及的知识点

出现的问题

使用的库
from PyQt5 import QtCore, QtGui, QtWidgets,QtWebEngineWidgets
import io,sys,folium
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import QWebEngineView
import numpy as np
import json
import pickle
import requests
from geopy.distance import geodesic

求最短路径的两种算法核心代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#define INF 0x3f3f3f3f
using namespace std;
const int N=5;
int s=0;
int map[N][N]={{0,10,INF,8,5},{10,0,1,INF,3},{INF,1,0,6,9},{8,INF,6,0,2},{5,3,9,2,0}};//Dijstra算法
Dijstra(int t){int vis[N]={0};int dis[N];int record=-1,m=INF,ss=s;memset(dis,INF,sizeof(dis));dis[ss]=0;vis[ss]=1;while(1){record=-1;m=INF;for(int i=0;i<N;i++){if(map[ss][i]!=INF&&!vis[i]){if(ss==0) dis[i]=map[ss][i];record=m<map[ss][i]?-1:i;m=min(m,map[ss][i]);}}if(record==-1) break;for(int i=0;i<N;i++){if(map[record][i]!=INF&&dis[record]!=INF){dis[i]=min(dis[record]+map[record][i],dis[i]);}}vis[record]=1;ss=record;}return dis[t];
}
//Floyd算法
Floyd(int t){int dis[N][N];memset(dis,0x3f,sizeof(dis));for(int i=0;i<N;i++){for(int j=0;j<N;j++){for(int k=0;k<N;k++){if(dis[i][j]>map[i][k]+map[k][j]){dis[i][j]=map[i][k]+map[k][j];//cout<<i<<"->"<<j<<":"<<dis[i][j]<<endl;}}}}return dis[t][s];
}int main(){cout<<"Dijstra="<<Dijstra(4)<<endl<<"Floyd="<<Floyd(4);
}

//其他功能靠api实现
实验结果
初始界面

有条件搜索:起点,终点,中间节点,出行方式

显示:全长距离,总预计耗时,备忘录会搜索路线指示
沿科华南路向南行驶368米直行进入隧道
沿科华南路向南行驶360米向右前方行驶进入匝道
沿科华南路出口途径科华南路向南行驶1.7千米右转
沿锦悦东路途径锦悦西路向西行驶528米右转
向北行驶24米到达目的地
总时间6938.45分钟

可以自己单击标注点,并且显示经纬度

可以将该次路线打开(.pkl)格式,或者自己命名保存

特殊功能:增加了打开网页的功能,上网,浏览网页,方便查询信息

可以娱乐玩小游戏

提示:需要点击特殊按钮才能打开网页功能

苏苏

pyqt5 地图可视化 网页地图 folium相关推荐

  1. echarts地图可视化 中国地图及各省级js文件分享

    最近在做关于echarts地图可视化时,需要绘制各省的地图,于是就搜索了大量的信息.踩了好多坑,大多数都是付费的. 有需要的搜索微信公众号[知音库],点击文件库进入领取 即可领取整理好的中国地图js文 ...

  2. 【归档】[D3] 地图可视化——美国地图

    基于地图信息,设计可视化方案,能够将不同州的生产力高低,以及一些城市的人口多少表示在地图上.该可视化方案,能为用户提供一个分析在那些生产力比较高(或比较低)的州和州里一些大城市的人口之间关系的工具. ...

  3. Power BI——地图可视化(气泡地图Bubble Map)

    一.概念: 在地图上利用气泡的大小来表示不同地区的数据 二.案例分析: 展现世界各国的 GDP: 步骤1: 步骤2:如果有多个层次的位置列,比如上图中是国家层级的位置,再加上省自治区.市级的位置数据, ...

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

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

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

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

  6. 数据可视化神器,精彩的地图可视化展示

    传统的地图分析制作大多需要编程来完成,今天给大家介绍的地图可视化工具,简单的套入地理经纬度数据或者区域名称,系统自动识别定位出相应位置从而完成地图可视化.地图可以说下当下重要的数据可视化工具.好的地图 ...

  7. 借助高德地图开发者平台——地图可视化

    借助高德地图开发者平台--地图可视化 高德地图开发者平台:http://developer.amap.com/ 做什么? 制作这样的显示地图: 你只需要: 点位经纬度坐标即可.(这一点可以利用高德坐标 ...

  8. EXCEL地图可视化功能概览--小O地图EXCEL版0.6.3.0版

    前言 小O地图EXCEL版软件能干什么? 总结起来,在EXCEL中实现 地图浏览.地图任务(处理地理数据).地图可视化.地图标注.地图快照. 本文是对小O地图EXCEL版软件功能的简介,通过本文,能够 ...

  9. 0306-二维地图开发-地图可视化:简单符号渲染

    地图可视化是地图作为信息呈现媒介的一个重要功能.通过可视化,我们可以洞察出地图上呈现的数据特征和它们之间的空间关系.目前做空间可视化这块的越来越精细,有些甚至上升到的艺术的层面.对于地图开发者来说,如 ...

最新文章

  1. Java学习总结:23
  2. 富士康遭黑客巨额勒索 企业如何应对数据安全风险?
  3. Singleton模式笔记
  4. 爬虫---Beautiful Soup 通过添加不同的IP请求
  5. 二叉树中的最大路径和—leetcode124
  6. Dotnet的数据定位和匹配
  7. 第三个一千行+500行总结-数据结构C复习--知识点总结3--七到九章
  8. WordPress 不同分类目录调用不同模板的方法
  9. 《UNIX编程环境》——5.6 zap:使用名字终止进程
  10. 如何将以字符表示的16进制数转换为机器码表示的16进制数
  11. win10 共享打印机错误0x00000709修复
  12. openGauss数据库备份恢复指导手册
  13. qpython 3h下载_【分享】QPython 3H3.0.0 一个伟大的脚本编辑器!
  14. 关于物联卡的测试期、沉默期、计费期你都知道吗?
  15. Python实现抓取CSDN热门文章列表
  16. burp直接抓取windows微信小程序与公众号数据包
  17. Dumb-Init进程信号处理
  18. python在线课程价格-python课程价格
  19. 【一看就懂】tf.logical_and(),tf.logical_or(),tf.logical_not(),tf.logical_xor()
  20. 倭黑猩猩机器人_科学美国人60秒:倭黑猩猩妈妈监管儿子的私生活

热门文章

  1. openCV专栏(四):阀值处理+噪音滤波
  2. 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据
  3. 汉语拼音的23个声母该怎么学?
  4. RD算法及其距离徙动校正(原理及matlab仿真)
  5. how2j学习总结-未完
  6. 蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 --传统蓝牙搜索演示以及实现原理
  7. About Flash
  8. Peano自然数公理系统
  9. Postman+Newman执行自动化测试
  10. .net 6 在退出构造函数时,不可为 null 的 属性“xxx”必须包含非 null 值。