有一阵子没写过博客了,最近因为自己小队申请了项目有并且要帮研究生做一些数据处理的小任务,接触到可视化。这里介绍最近学到的了三种方法。

第一种是用python。

这里原理是用matplotlib里面的scatter画散点图,设置好横轴和纵轴的单位距离,然后把横轴和纵轴数据放在两个列表里面就行,具体可以看看matplotlib的官方文档,或者参照这篇博客,且看代码:

import matplotlib.pyplot as plt
import os #定义读取txt的函数 返回一个列表 列表里包含经度
def get_longitude(filename,i):
fopen = open(filename,'r')
longitude = []
for eachline in fopen:
group = eachline.split(",")
longitude.append(float(group[i]))
fopen.close()
return longitude #定义读取txt的函数 返回一个列表 列表里包含纬度
def get_latitude(filename,i):
fopen = open(filename,'r')
latitude = []
for eachline in fopen:
group = eachline.split(",")
latitude.append(float(group[i]))
fopen.close()
return latitude #filename文件路径 size点的大小 color为点的颜色 i为自己定义 如果每一行前面有代表行数的数字,i为1否则i为0
def draw_image(filename,size,color,i):
latitude = get_latitude(filename, i) # 纬度
longitude = get_longitude(filename, i+1) # 经度
plt.scatter(longitude, latitude, size,color)
plt.ylim(Ymin,Ymax)#Ymin和Ymax表示纵轴的最大值和最小值
plt.xlim(Xmin,Xmax)#同上
plt.plot(longitude,latitude,'b')#颜色的设置 'r' 红色 'm' 粉红'g' 绿色 'c' 青色'b' 蓝色 'w' 白色'y' 黄色 'k' 黑色
plt.show()

效果如下:

这里的可视化的容易懂,但有个不好的地方就是背景不是地图,效果不太好。不过python有个库是可以在地图上标点的,叫BaseMap,但我这里没写的原因,,emmm一是当时没时间学,二是这个网上资料不多,不想看英文文档,就没写,这回我有空就去学一学,之后也写一篇博客,这里贴一篇可以参考的,感兴趣的小伙伴可以看看BaseMap

第二种可视化,就是用百度地图了,百度地图API提供了很多东西,只要注册申请密钥之后就能用。

值得注意的是,如果你要可视化的是海量数据,个人建议,还是用LBS麻点,百度地图API,在控制台里找数据管理那部分,然后上传数据,不过切记别把上传的格式搞错了,先把百度提供的模板下下来然后自己录入数据生成csv文件,然后再上传。

上传数据成功后会有一个geotableId,然后就是显示了,这里可以直接在地图上看了

之前的geotableId在前端页面调用的时候会要用到

请看代码

// 百度地图API功能 

var map = new BMap.Map("l-map");          // 创建地图实例 

var point = new BMap.Point(116.403694,39.927552);  // 创建点坐标 

map.centerAndZoom(point, 15);                 // 初始化地图,设置中心点坐标和地图级别 

var customLayer=new BMap.CustomLayer({ 

    geotableId: 30960,//换成你自己的数据表geotableId 

    q: '', //检索关键字 

    tags: '', //空格分隔的多字符串 

    filter: '' //过滤条件 

}); 

map.addTileLayer(customLayer); 

customLayer.addEventListener('hotspotclick',callback);

如果数据不多,可以用这个例子,多个点示例,不难,这里就不赘述了,效果还不错

更多的demo还是看百度官方提供的吧demo

第三种方法,就是地图无忧,如果你不想理睬上面的那些代码,那么,地图无忧可以暂时解决一下你的问题,不过问题就是他不免费,试用是七天。不过他的便利之处就是他只用你上传数据文件(支持Excel和csv),样式等也可以自己随意设置,很方便。送上网址地图无忧,效果也很好

GPS轨迹数据可视化的三种途径的更多相关文章

  1. C#生成XML的三种途径

    C#生成XML的三种途径 为了全面,这里都将XML保存到文件中,有三种生成XML的方式: 1.我认为是最原始,最基本的一种:利用XmlDocument向一个XML文件里写节点,然后再利用XmlDocu ...

  2. iOS用三种途径实现一方法有多个返回值

    以前觉得这种标题有点偏向于理论,实际开发中怎么会有这种诡异的需求,但是真正遇到了这种硬需求时觉得还是有那么点价值的,理论付诸了实践在此也就做了个整理. 以我私下开发中的一处代码为例,本意是希望有这么一 ...

  3. 三、用Delphi10.3 创建一条JSON数据的第三种方法,非常简洁的写法

    一.用Delphi10.3构造一个JSON数据的第三种方法,并格式化输出,代码如下: uses // System.JSON, System.JSON.Types, System.JSON.Write ...

  4. 详解Oracle数据货场中三种优化:分区、维度和物化视图

    转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的 ...

  5. PHP中数据类型转换的三种方式

    PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...

  6. 虚拟化x86的三种途径

    虚拟化x86的三种途径 作者:缪天翔链接:https://www.zhihu.com/question/20145026/answer/34527331 x86上的全系统虚拟化有三种主要的途径: 二进 ...

  7. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

  8. [译]学习IPython进行交互式计算和数据可视化(三)

    第二章 在本章中,我们将详细学习IPython相对以Python控制台带来的多种改进.特别的,我们将会进行下面的几个任务: 从IPython中使用系统shell以在shell和Python之间进行强大 ...

  9. ENVI/IDL与ArcGIS集成开发的三种途径

    转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...

随机推荐

  1. 2019.01.04 bzoj2962: 序列操作(线段树+组合数学)

    传送门 线段树基础题. 题意:要求维护区间区间中选择ccc个数相乘的所有方案的和(c≤20c\le20c≤20),支持区间加,区间取负. 由于c≤20c\le20c≤20,因此可以对于每个线段树节点可 ...

  2. 2018.11.06 洛谷P1941 飞扬的小鸟(背包)

    传送门 上升看成完全背包. 下降看成01背包. 注意边界转移就行了. 代码: #include<bits/stdc++.h> using namespace std; inline int ...

  3. 2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)

    传送门 有点难调啊.其实是我自己sb了 不过交上去1A1A1A还是平衡了一下心态. 所以这道题怎么做呢? 我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/ ...

  4. 学以致用八---centos7.2 安装vim8+支持python3

    目的:打造基于python的vim环境 也是在地铁上突然产生的一个想法,平时都是在pycharm上练习python,但有时候会提示激活码过期,又得上网找激活码,够折腾的.那何不在linux环境下来搭建 ...

  5. 大文件断点上传 js+php

    /* * js */ function PostFile(file, i, t) {    console.log(1);  var name = file.name, //文件名 size = fi ...

  6. asp.net文件上传下载

    泽优大文件上传产品测试 泽优大文件上传控件up6,基于php开发环境测试. 开发环境:HBuilder 服务器:wamp64 数据库:mysql 可视化数据库编辑工具:Navicat Premium ...

  7. matlab矢量场数值可视化(动态数值模拟)

    https://blog.csdn.net/eric_e/article/details/81294092 D3.js实现数据可视化 三维可视化 风场可视化(数据插值):风场是动态变化的,实时刷新的, ...

  8. iOS图片按比例显示

    只需加这么一段代码,如下: imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.autoresizesSubviews ...

  9. jar包获取资源文件

    背景 写的一个spring boot项目打成jar包部署运行下,打成jar包,提示找不到资源文件,如下图: 直接通过idea是可以运行的,但打成jar包后提示找不到资源文件,简单查阅后了解到是因为ja ...

  10. 彻底卸载Oracle database 12c教程

    1.WIN+R,然后输入regedit,回车:2.在注册表中,进入目录:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,删除所有以oracl ...