您的位置:首页 > 编程语言 > Java开发

java:学期projet总结,大图可视化

2016-01-08 03:52 471 查看
今天下午学期projet答辩,从十月份拿到题目到十二月份因为课很多,考试也不断,肯本没有动它,直到答辩时间安排出来之后才开始写,大部分代码都是在圣诞加元旦这两周的假期里完成的。今天答辩结束,不管如何,写下总结吧。

projet的题目法语叫:Outil pour la visualisation de grand graphes,翻译过来姑且叫“大图可视化”吧,主要任务就是根据老师给的数据画出城市地图,然后对地图做一些基本的操作,例如:放大,缩小,选点,选线,选路径。

老师提供了三个城市的数据,巴黎,柏林和旧金山,数据分为两类,点的数据和线的数据。数据格式为.csv。点的数据由三部分组成:ID,经度,纬度;线的数据由四部分组成:起点,终点,距离,危险系数。

点数据示例(巴黎的):

“0 2.3584 48.832”

“1 2.35897 48.8529”

“2 2.36764 48.8322”

“3 2.37574 48.8533”

“4 2.22305 48.8682”

“5 2.3727 48.8346”

“6 2.38618 48.8346”

“7 2.38435 48.8143”

线的数据示例(巴黎的):

“1703 1704 143 286”

“1703 2087 110 440”

“1703 10748 105 420”

“1704 1703 143 286”

“1704 2702 147 588”

“1704 10747 102 408”

“1704 14814 5 10”

“1817 6208 126 252”

“1817 6241 106 212”

每份数据文件都有上万条数据,巴黎的noeuds.csv文件有近三万个点,arc.csv文件有六万五千条线,柏林和旧金山的数据类似。

根据数据画出来的地图如下:

巴黎:



巴黎实际地图对比(取自谷歌地图):



柏林:



柏林实际地图对比(取自谷歌地图):



旧金山:



旧金山实际地图对比(取自谷歌地图):



初略地看还是很像的,特别是巴黎地图上那条蜿蜒的塞纳河。

菜单栏和工具栏的图标显示了这个软件的所有功能。



菜单栏的文件夹图标表示打开文件和保存文件的功能。

工具栏从左到有依次是:

1. 放大地图,

2. 缩小地图,

3. 颜色修改面板:改背景色,点的颜色,线的颜色

4. size面板:改点的大小或线的粗细

5. 选点按钮

6. 选线按钮

7. 选路径按钮 :选出一条路径后可以把路径的信息保存成csv文件

8. 选矩形区域按钮:拖拽鼠标在地图上选出一块矩形区域,矩形区域内的点和线全被选中,并且可以把这块区域导出,保存成jpg或pdf文件

9. 一键还原按钮:当对地图做了一些更改,例如放大,改颜色,点击一下这个按钮可以还原到初始状态(这个功能是我自己加的)

今天下午答辩时来了一个搞地图的公司的人,我的导师是这家公司的技术顾问,这家公司主要是搞骑行路线设计的,这大概是这个技术的应用方向。

做这个projet时用到了一些java相关技术,主要有:

读csv文件,写csv文件

经纬度转换成屏幕坐标

软件外观设计,主要是java swing的知识

保存jpg,pdf文件

鼠标响应函数

如何判断一个点是不是在一条线上,判断一个点或一条线是不是在一个矩形区域内

地图放大,缩小功能

java的屏幕截取功能

这些功能是如何一一实现的,我会再写文章详细记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: