王怡,卢琪玉,杨肖丹,王茜,李链纯
(华南师范大学计算机学院,广州510631)
基于时空轨迹记录和情感体验的旅游足迹照片集分享的系统设计与实现
王怡,卢琪玉,杨肖丹,王茜,李链纯
(华南师范大学计算机学院,广州510631)
通过调用百度地图的API接口实现搜索定位功能,用户可以依次选择旅游地点,并在每个旅游地点上面添加旅游图片,并根据需求对上传的图片进行图像处理,添加游记心得体会;当所有旅游地点选择及编辑完毕后,系统将按照旅游时间的顺序自动生成旅游照片集并在地图上绘制出游客的旅游轨迹。
百度地图API;图片处理;轨迹;情感体验
近年来,大众旅游时代的市场基础愈加厚实,越来越多人选择在假期或者闲暇时间出行旅游。根据数据显示,2015年我国旅游总人数达到41.2亿人次[1]。而在旅行中,旅游爱好者会沿途拍摄较多的照片,并且记录所到之处的个人旅游感受。因此,旅客在旅程结束之后,通常比较乐意将自己在旅途中拍摄的照片利用图片处理软件进行处理,并且撰写修辑自己的旅游心情游记。对于游客个人来说,旅游轨迹是旅行中很具有个人特色的信息。但是市面上现存的旅游轨迹记录软件多数是需要在旅行的过程中实时记录轨迹,这样对于正在旅行的游客来说是较为不方便的。并且,多数旅游游记分享软件缺少图片处理的功能。
因此,本软件系统将着眼于实现用户在旅游过后进行旅行轨迹记录的功能,通过地图搜索定位与绘制,来记录用户旅游的时空轨迹,提高用户在旅游过程中的情感体验。用户只需依次输入旅游的地点,系统会将输入的地点定位在地图上,用户在对应的地点上输入旅游时间,上传图片,根据需要与当时的旅游心情体会编辑处理图片,并撰写游记。当所有旅游地点都选定、编辑、上传完毕后,系统将按照旅游时间的顺序在地图上绘制出游客的旅游轨迹,给予用户一种在时空中连贯穿梭回顾旅程的优良情感回顾与体验。
本旅游轨迹记录的旅游照片集系统是使用An⁃droid Studio平台进行手机客户端的开发,使用Java编程语言来完成系统的实现。本系统共分为系统管理、旅游轨迹、照片处理、用户信息四个功能板块。该软件需要在网络连接和手机定位打开的状态下使用,使用Bmob移动后端云服务平台实现服务器和数据库与用户系统客户端之间的通信数据传输。
系统管理模块为系统利用后台服务器与数据库对所有用户和旅游轨迹数据的处理。通过对所有用户所发布的旅游轨迹的点赞量与评论数量进行排序,筛选出热门的旅游轨迹,并推荐给用户进行阅读。用户查看热门推荐轨迹路线时,可进行评论与点赞,也查看轨迹发布者的个人信息与轨迹路线列表。
图1 软件系统功能模块图
旅游轨迹模块为当用户选择制作旅游相册轨迹功能时,系统将使用百度地图API来实现地图的绘制与显示。用户输入旅游地点之后,系统将通过地图搜索定位功能,在地图上显示所有符合条件的地点,用户可进行地点的选择,并对该地点添加对应的旅游时间,相关照片以及旅游游记。当用户完成所有旅游地点的详细信息编辑后,所有的信息将上传到服务器,系统将根据时间的顺序生成旅游照片集并将所有的旅游地点连成一条旅游轨迹。用户可点击轨迹上的每个具体旅游点,回顾体验该旅程的照片美景以及旅游心情。
照片处理模块为当用户在制作旅游轨迹路线过程中,选择旅游地点后,实现本地照片加载、图片选择、照片处理与图片上传的功能。其中,图片处理功能包括图片裁剪与旋转,添加滤镜、文字、贴图等基础图片处理功能。
用户信息模块为用户注册、登录、个人信息编辑的管理,以及当用户给其他用户点赞与评论时的系统处理工作。
系统操作流程设计如图2所示。
为方便用户的使用,软件主界面设计采用了frag⁃ment和radiobutton结合的形式,包括热门旅游轨迹推荐,轨迹搜索,个人轨迹制作,个人资料四个界面。当用户点击不同的radiobutton时,系统在主界面的Activ⁃ity中加载对应的界面,当用户进入不同的fragment中实现各功能的操作时,系统将实现不同Activity之间的跳转,其中包含了Activity的销毁、唤醒等的处理。
图2 系统操作流程图
本系统的特点在于注重用户在旅游过程后的时空轨迹记录与情感体验。用户可在旅游结束之后,利用本软件记录个人的旅游照片与心情。系统会根据用户旅游的时间顺序生成旅游照片集以及旅程轨迹。基于此功能,用户除了可以回顾某个自己所到旅游地点的照片美景以及旅游心得之外,还能够浏览自己整个旅程所有旅行地点所连成的足迹轨迹。从北到南,从西往东的旅行轨迹不仅能够增强用户对旅程的连贯性回顾及忆想,还能够升华旅客对于旅行的成就感与荣誉感。
而且本软件的主色调采用了淡蓝色色调。淡蓝色可以象征广阔无际的天空与海洋,寓意着旅行永无止境,世界有多大,旅行的脚步及轨迹就有多远。并且淡蓝色的色调会给用户带来明朗、清新、安详文艺的视觉体验。
(1)照片处理
①本地图片选择器
本系统的本地图片选择器是仿照微信图片选择器,首先利用ContentProvider扫描手机中的所有图片,然后异步扫描出本地图库中带有jpeg,png后缀的文件,记录下图片的路径,以便在gridview中显示图片;由于多张图片加载存在一定的等待时间,因此加载图片的imageadapter类要实现两个条件:一是防止内存溢出,调用chosepiture.getInstance()方法,利用图片的大小来对其进行压缩,并且利用缓存机制避免多次加载的等待时间;二是用户操作UI控件必须充分的流畅,在imageadapter类中的getView()方法需要使用异步加载、回调显示。
除了gridview显示外,还需要选择不同文件夹要用到的弹窗ListImageDirPopupWindow类,通过在initEvent()方法实现该弹窗点击的响应事件,跳转到对应文件夹下。
②图片编辑
本系统的图片编辑调用了github上imageeditli⁃brary开源项目,该项目提供了图片编辑所需要的剪切、旋转、添加表情贴图、文字编辑。通过intent.putExtra(EditImageActivity.FILE_PATH,picurl[i])方法将选中的图片路径传入imageeditlibrary中的EditImageActivity编辑类中。
(1)地图轨迹记录
●地点搜索定位及覆盖物点击弹出式动画效果的实现过程
在使用百度地图免费API接口提供的各种功能之前,先要在百度地图官网申请一个百度地图开发密钥,才能在程序中使用百度地图提供的地图服务、定位服务及数据服务等。
android:name="com.baidu.lbsapi.API_KEY"
android:value="XWrY1eZmuEPpDaiP79d7zD9YhkT ⁃vWjU5"
/>
①覆盖物点击事件弹出式动画效果当用户点击地点上的红色覆盖物标识时,会从底端弹出一个对应于封装好的bottomview的布局显示效果,该布局所对应的activity类bottomview将全部布局封装好,只需要在另一个地图主模块Myactivity中利用接口实现对布局的相应响应动作。弹出动画的效果如下图4所示。
②图片轮播模块
该图片轮播模块将用户选择并完成编辑的照片上传到服务器端后,进行一一地轮流播放。通过设置相应适合的轮播间隔时间,让用户欣赏该旅游地点的相关图片,带来良好的视觉感受。添加图片集合至轮播区域的部分代码如下:
private ViewFlipper viewFlipper;
//添加图片至ViewFlipper
public void addViewToViewFillper(List viewFlipper.addView(views.get(i),new View⁃Group.LayoutParams(ViewGroup.LayoutParams.MATCH_PAR⁃ENT,ViewGroup.LayoutParams.MATCH_PARENT)); } } ●旅游路线的轨迹形成实现 系统使用百度地图的API接口函数来实现轨迹点覆盖物的标识及其多个点之间的连线,按照用户编辑的旅游时间顺序来形成旅游轨迹,形成效果如图5所示。 ①轨迹中对应覆盖物的红色marker点击事件的处理,采用与上述相同的弹出式效果,具体的响应事件onMarkerClick()部分代码如下: Bundle extraInfo=arg0.getExtraInfo(); Info info=(Info)extraInfo.getSerializable("info"); final LatLng latLng=arg0.getPosition(); //将经纬度转换成屏幕上的点 Pointpoint=bdMap.getProjection ().toScreenLocation(latLng); point.y-=47; LatLngll=bdMap.getProjection().fromScreenLocation(point);Toast.makeText(AddOverlayActivity.this,latLng.toString(),Toast.LENGTH_SHORT).show ();bottomView.setVisibility(View.VISIBLE); TranslateAnimationanimation=(TranslateAnimation)Ani⁃mationUtils.loadAnimation(AddOverlayActivity.this,R.anim.an⁃im_show);bottomView.startAnimation(animation); ②两个地理位置点之间的连线 系统通过调用百度地图的接口函数addOverlay(polylinewOptions)来实现多个经纬度点的连线。引用百度地图的添加折线监听回调PolylineOptions,将多个经纬度点从服务器端获取,保存至points的list集合中。部分代码的设置如下: PolylineOptions polylineOptions=new PolylineOptions(); polylineOptions.points(points); polylineOptions.color(0xFF000000); polylineOptions.width(6);//折线线宽 bdMap.addOverlay(polylineOptions); 图3 图4 图5 本文设计和开发了基于Android平台上的旅游足迹记录与照片分享App,为广大用户提供一个可在旅游过后随时记录旅游照片与轨迹的平台。这是一款集获取、分享、记录的App。 用户除了可浏览热门推荐的旅游轨迹还可根据旅游地点进行相关搜索,并于从中获取自己想要的旅游推荐及信息。 用户可随心随意编辑上传自己旅行的照片以及游记,除了自我表达抒发情感之外还能够供他人浏览以及分享。 系统自动生成的照片集以及轨迹记录了用户连贯的旅程足迹,更好地促进用户旅行情感体验及升华。 当然,本系统还存在很多不足之处需要在后续推广中进行进一步的完善。 [1]胡亚会.“互联网+”发展战略背景下我国旅游业发展的再思考.辽宁:旅游纵览周刊,2015. Abstract: By referencing the Baidu map API interface,realizes the orientating function.The user can select their tourist destinations and upload their photos.According their needs,the user also can manipulate the photos and write down the travel experienc⁃es;when finishing choosing and editing all the tourist destinations,the system automatically produces the travel photo galler⁃ies and record the travel track in line with the order of time. Keywords: Baidu Map API;Photo Manipulating;Trajectory;Emotional Experience Design and Implementation of the Tourism Photo Gallery System Based on Track Record of Time and Space and Emotional Experiences WANG Yi,LU Qi-yu,YANG Xiao-dan,WANG Xi,LI Lian-chun 2017-03-21 2017-06-01 1007-1423(2017)18-0075-05 10.3969/j.issn.1007-1423.2017.18.018 大学生创新创业项目训练计划项目 王怡(1995-),女,广东湛江人,华南师范大学本科在读,学生,研究方向为软件工程 卢琪玉(1995-),女,广东梅州人,华南师范大学本科在读,学生,研究方向为网络工程 杨肖丹(1995-),女,广东梅州人,华南师范大学本科在读,学生,研究方向为数据库 王茜(1996-),女,湖南省常德人,华南师范大学本科在读,学生,研究方向为网络工程 李链纯(1995-),女,广东潮安人,华南师范大学本科在读,学生,研究方向为软件工程3 结语
(College of Computer Science,South China Normal University,Guangzhou 510631)