\

关键提要

\\

  • 基于位置的服务(LBS)通过移动网络确定移动设备的地理位置,它具有多种用途,包括应用于社交网络。LBS是使用位置数据来开发不同服务功能的一类常见的计算机程序。\\t
  • 在紧急状况下查找某人的位置是具有挑战性的。另外,如果你忘记了你的车停在了停车场的什么位置,是很难确定它在停车场中的位置的。危险通知和用户导航(DNUN)移动程序可以让用户有效地对人或物体进行定位。\\t
  • DNUN应用程序可以让用户添加、删除或者更新联系人,如果发生紧急情况,用户可以通过应用了geo-finder API的Google Maps中来追踪联系人的位置。联系人也能追踪用户的路线和距离用于导航至该用户所在位置。Google Maps的地理位置定位API还带来了另一个重要的功能,即寻找物品。这个功能可以存储一个物体(例如一辆汽车)的经纬度位置信息以备将来使用。\\t
  • DNUN可用于商业LBS,包括在医院中对患者进行定位,在紧急情况下对士兵、警察以及消防员进行定位等。\

\\

这篇文章首次发表于IEEE IT Professional杂志。IEEE IT Professional是一本提供严谨科技资讯的杂志。企业总是在可靠性和灵活性上面临挑战,IT经理和技术领导者依赖IT专家们来提供高超的解决方案。

\\\\

地理定位是识别人或物体的地理位置的过程1,2。基于位置的服务(LBS)通过移动网络确定移动设备的地理位置,它具有多种用途,包括应用于社交网络。LBS是使用位置数据来开发不同服务功能的一类常见的计算机程序。

\\

纵观历史,人类早就发明出了确定位置和导航的技术。“烟雾信号”是古中国、古希腊和美洲原住民长距离传递消息的方式,用于在广阔的沙漠中和穿越海洋的时候进行导航3。早期的导航工具,例如罗盘和kamal4,用于给行驶于小河流和穿越海洋的船只确定方向。然而,几个世纪以来,这些设备都是十分昂贵的,只有那些具备一定经济实力的人才能够使用。而如今,多种不同类型的技术让我们能够获得到位置信息,包括GPS5、IP寻址、全球移动通信系统(GSM)、码分多址(CDMA)、手机ID6、Wi-Fi、蓝牙MAC地址7,8以及用户输入。

\\

移动应用程序的数量和质量都在增长。例如,移动应用程序Yelp是早期的位置感知通讯技术。网络提供商,例如T-Mobile、Verizon以及AT\u0026amp;T,都为其设备提供地理位置应用程序服务。除此之外,这些设备的操作系统(例如,iOS、Android、RIM等)都能让软件的设计开发人员使用软件开发套件(SDK)来开发各种各样的应用程序。这使得LBS和Foursquare、Yelp、Glympse等等这些应用程序有着明显的进步。

\\

然而,在紧急状况下查找某人的位置仍然是具有挑战性的。另外,如果你忘记了你的车停在了停车场的什么位置,是很难确定它在停车场中的位置的。危险通知和用户导航(DNUN)移动程序可以让用户有效地对人或物体进行定位。

\\

方法论

\\

DNUN应用程序会打开一个登录界面,其中包括登录、注册新用户以及忘记密码等字段。一旦登陆之后,用户将被重定向至应用程序的主界面。为了实现更好的安全性,所有的紧急通知服务在DNUN主界面都可用。用户可以添加、删除或者更新联系人,如果发生紧急情况,用户可以通过应用了geo-finder API的Google Maps中来追踪联系人的位置。联系人也能追踪用户的路线和距离用于导航至该用户所在位置。Google Maps的地理位置定位API还带来了另一个重要的功能,即寻找物品。这个功能可以存储一个物体(例如一辆汽车)的经纬度位置信息以备将来使用。

\\

软件设计过程开始于分析阶段,并且结束于用于进一步开发的产品测试阶段。其设计过程会详细说明应用程序是如何与其环境和用户进行交互的。在架构设计阶段,应用程序的开发可能需要遵循特定的设计模型,包括数据流图(DFD)、模型-视图-控制器(MVC)以及UML。

\\

DFD,有时被称为气泡图,通过图形来表示。它展示了开发过程中的不同阶段,从数据输入阶段到不同处理元素的执行阶段,再到系统产生的数据输出阶段10。为了对用户请求进行响应,DNUN与存储用户数据(例如,联系人信息以及危险通知)的数据库进行关联。根据用户的请求,应用程序会与数据库进行通信。

\\

UML被软件设计师们所熟知:它用于对象建模、创建类图和其它图表。原生应用程序使用Android或iOS的SDK进行编码。移动Web程序可以通过iOS上的Safari或Android上的Chrome等浏览器进行访问。像Apache Cordova11这样的项目能够帮助构建应用程序,它能够使用编译成包装器(wrapper)的Web技术来构建应用程序,以此创建一个混合应用程序,例如DNUN应用程序。

\\

移动应用程序也可以使用Ruby on Rails12,13进行开发,DNUN和PostgreSQL数据库一起用于后端处理。Ruby on Rails是一个使用Ruby进行编码的开源Web应用程序框架。它采用MVC模式来组织应用程序编程。Ruby创建了包含了所有必需资源和可用库的DNUN,被称为Ruby Gems。这些Gems是健壮的,使用Ruby on Rails开发像DNUN这样的移动应用程序比使用其他Web应用程序框架要更高效、更容易。

\\

类图中显示了DNUN的一些类、接口、协作以及它们之间的关系。类图是面向对象建模的关键构件。我们使用它进行详细建模,将模型转换成为我们的应用程序代码。DNUN应用程序有四个主类:EmergencyDetail、User,DangerNotification和MyLocation。

\\

EmergencyDetail类为用户提供了保存一些联系人的选项,如果他们处于危险当中,他们可以向其发送危险通知。这个类有一些属性,例如,name、email、phone_no_1、phone_no_2,它还有一些方法,例如,addContact()能够添加一个新的联系人,updateContact()可以更新之前添加的联系人、deleteContact()能够删除选定的联系人、showContacts()能够显示出用户添加的联系人列表。

\\

User类代表的是应用程序的用户。这个类的所有对象都与其他类有关联。User类有一些属性,例如,first_name、last_name、contact_number、 email、password等等,它还有一些方法,例如,addUser()用于创建新的用户、addPassword()用于为新用户创建安全密码、createSession()用于用户登录后保持用户的会话状态、destroySession()用于用户注销登录后关闭用户会话状态。

\\

DangerNotification类用于创建危险通知并且将它通过电子邮件发送给一个或多个选定的联系人。这个类有一些属性,例如,user_id、 receiver_id、message、address、latitude和longitude。它还包含一些方法,例如,addNotification()用于创建新的通知、updateNotification()用于更新一个已添加的通知、deleteNotification()用于删除一条选定的通知、showNotifications() 用于查看用户通知列表、navigate()用于导航至通知中的位置、sendNotification()用于将通知通过电子邮件发送至一个或多个联系人。

\\

MyLocation类用于保存用户位置。它与User类相关联,它有一些属性,例如,user_id、name、desc (description)和用于显示位置的latitude、longitude。它还有一些方法,例如,addLocation()用于添加一个新的位置(用户的当前位置)、updateLocation()用于当用户再次到达一个他曾经到达的位置时对曾经添加过的位置进行更新、deleteLocation()用于删除已经保存的位置、showLocations()用于显示用户保存过的所有位置列表、navigate()用于从当前位置导航至一个选定的位置。

\\

接下来我们会详细研究DangerNotification类和MyLocation类,它们是DNUN应用程序所提供的两个主要特性。

\\

危险通知页面(DangerNotification Page)

\\

危险通知是DNUN的主要相关特性之一。用户只需要点击一个按钮就能将当前位置发送给在EmergencyDetail阶段中注册的一个或多个联系人。当用户点击发送时,地理定位会跟踪他/她的当前位置,并将通知通过电子邮件发送给其他的用户,然后其他用户可以响应该帮助请求。

\\

当一个人处于危险状态时,他/她可以点击图1中的Locations按钮,通过Google Maps检测和显示他/她的位置。如图1所示,用户可以发送一个危险通知。如图2所示,用户可以通过广播方式或者组播方式将通知发送出去。用户可以勾选部分联系人(组播),也可以选择全部联系人(广播)。一旦用户点击了发送按钮,电子邮件会被发送给指定的联系人,通知他们的朋友(用户)正处于危险状态。这个邮件中还包含该用户的精确位置。

\\

(点击放大图像)

\\

\\

图1. 创建危险通知。用户的位置通过Google Maps显示出来,消息被发送给用户的紧急联系人。

\\

(点击放大图像)

\\

\\

图2. 发送通知。用户可以将通知发送给选定的联系人(组播),也可以发送给全部联系人(广播)。

\\

我的位置页面(MyLocation Page)

\\

物品定位是DNUN应用程序的第二大主要特性。用户可以存储特定物品的位置并将该位置保存起来用于之后的导航。不论何时需要,用户只需要点击一下即可使用Google Maps查找物品的位置。

\\

用户可以通过点击Add Location按钮来添加和储存一个或多个物品的位置,例如一辆停在停车场的汽车。图3描述了应用程序的添加位置的功能。确定用户的当前位置,显示一个页面,以便用户能够使用一下字段来保存他/她的位置:Name the Location允许用户对已保存物品的位置命名、Note for Your Location能够让用户对物品和它的位置进行注释。当用户以后需要检索物品位置时,他/她点击View Map,DNUN就会在Google Maps中打开相应的位置(如图4所示)。此外,如果要导航至一个已保存的位置或者一个物品的位置,用户可以点击Navigate(见图4),然后地图就会显示出路线以及导航方向。

\\

(点击放大图像)

\\

\\

图3. My Location页面。用户可以添加和储存他们的位置,或者物品的位置,比如一辆停车场中的汽车。

\\

(点击放大图像)

\\

\\

图4. Map页面中的Open Location页面。当用户需要检索一个物品位置时,他们可以点击View Map,应用程序会通过Google Maps显示出物品的位置。点击Navigate,用户会获得导航路线和方向。

\\

讨论和分析

\\

众所周知,智能手机改善了我们的日常生活。地理定位是智能手机技术中最有益的应用领域之一。今天的大多数智能手机都配备有硬件和软件地理定位组件,能够进行位置追踪。LBS使得GPS能够在不同的手机操作系统(例如Android或iOS)上进行设备定位。地理定位技术在无线产品中越来越重要,原因有很多,特别是美国联邦通信委员会强制要求所有无线蜂窝运营商都要向公共安全应答点(PSAP)提供紧急911呼叫者的位置。

\\

然而,对于军事应用和商业应用而言,地理定位技术也是十分有意义的,不仅仅是提供紧急位置14。这同时也是我们开发DNUN应用程序的动力。无线设备(例如手机、PDA和笔记本电脑)的使用催生了LBS的应用并且使得需要位置信息的应用程序成为可能。DNUN能被应用于以下商业LBS场景:

\\

  • 在医院及时定位患者;\\t
  • 被用在私人和住宅应用程序中,用于定位个人;\\t
  • 提供礼宾服务和位置感知服务(例如,查找最近的咖啡店;帮助新来到城市的人找到一个预先设定的位置,比如图书馆;在拥挤的购物中心或大学停车场查找车辆、帮助新学生找到教室、根据客户的位置在博物馆提供有关展品的信息)。\

在军事部门和公共部门,士兵、警察、消防员能够知道他们自己和他人的位置信息,受害者和处于危险当中的人员的位置信息是非常重要的。GPS一直以来都是户外区域最重要、最成功的定位技术,一般来说,GPS接收器是一种廉价的、常见的设备13

\\

DNUN的一个关键特性是它能够根据具体情况和需要,让处于危险中的人通过选择联系人(组播)或者选择所有联系人(广播)向多个帮助者发送通知。这能够使得处于危险中的个人能够更灵活地在危险区域内活动,因为多个帮助者可以在更广泛的范围内进行响应。此外,在给定的时间内只有少数的救援人员的情况下,拥有多个联系人显然是很有用的。那些在地理位置上更接近的救援人员能够比其他人更快地进行响应。

\\

另一方面,距离比较远的救援人员可以联系没有在通知列表中的人,或者通过手机或者寻呼机来联系那些电子邮件不在线的人。从当前位置大幅度移动的用户需要发送位置更新通知。然而,为了尽可能减少处于危险状态中的人的耗费的精力,DNUN会搭配一个一直在后台运行的移动应用程序,(例如,GPS Tracker Pro或Google Play上的移动位置跟踪器),它们可以对用户的位置进行跟踪,在用户无法发送通知时检测用户的移动。通过位置或技能发送求救信息给营救人员可以作为一个功能选项加入到DNUN中。

\\

DNUN移动应用程序可以通过向选定的联系人发送具有危险通知的电子邮件来解救处于危险中的用户。这些联系人能够作为用户社交网络的一部分通过DNUN进行添加、更新或者删除。因此,DNUN将移动传感器和社交网络整合成为一种能够应用于军事和商业的救援计划。结合社交媒体,地理位置服务以及像DNUN这样的地图系统是智能手机中十分有用的应用程序。DNUN还提供另一个功能,那就是帮助用户从任何地方导航至之前所保存的位置。

\\

这类软件解决方案消除了部署硬件的成本。Apache Cordova和Ruby on Rails就能够满足开发DNUN应用程序的所有需求。

\\

参考文献

\\

  1. D. Ionescu, \"Geolocation 101: How It Works, the Apps, and Your Privacy\

移动端DNUN:危险通知和用户导航相关推荐

  1. web电商系统、电商平台WEB端交互原型模板、用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务、Axure原型、rp原型、电商原型、商城系统原型

    作品介绍:web电商系统.电商平台WEB端交互原型模板.用户中心.会员中心.优惠券.积分.互动社区.运营推广.内容推荐.商品展示.订单流程.订单管理.售后及服务等完整的电商体系功能架构和业务流程 Ax ...

  2. IOS 高德地图获取用户导航路径

    标题 最近项目里有一个需求,用户开始导航之后,要将导航的路径传到服务器,在另一个客户端显示所有用户的导航路径. ## 思路 ## 要实现这个功能,最关键的一点就是当用户导航之后如何取到路径.笔者是用的 ...

  3. 使用匿名binder实现client向server端的死亡通知

    一.引言 因为binder是跨进程通信,难免会遇到服务端出现异常挂死的情况,这个时候需要通知到客户端进行相应的处理,在网络通信中是非常常见的机制,当然,在binder中,Android也为我们写好了相 ...

  4. websocket redis 单用户多端登录 发送通知 nginx负载均衡

    场景:用户在不同客户端登录时,通过websocket可以进行实时通知,同时需要发布项目到多台服务器上,使用nginx对websocket进行负载均衡. 具体示例:以用户为单位,登录A .B 浏览器,后 ...

  5. 面包屑导航软件测试,pc端与移动端面包屑导航设计特点

    对于面包屑导航来说相信大家应该都见过了,而且一般在网页设计以及移动端设计等方面使用的也是非常多的,下面我们就来了解一下,面包屑导航设计不同展示端口都有哪些特点. PC端 1. 不要用面包屑代替导航页签 ...

  6. 首版次软件产品认证/山东省首版次高端软件申报通知

    各市工业和信息化局: 为贯彻落实<山东省人民政府办公厅关于加快推动软件产业高质量发展的实施意见>(鲁政办发[]1号),加速提升软件供给能力,努力打造山东软件"名品",构 ...

  7. Windows 7 下月停止支持,微软重申将全屏通知敦促用户升级系统

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | oschina.ne ...

  8. 网络推广营销教大家有关移动端网站优化更受用户欢迎的技巧!

    网络推广营销发现,随着手机的普及和应用,人们对手机的便捷性也更加依赖,很多企业也想办法建设更好地移动端网站来为企业吸引到更多的用户和流量,那么对于移动端网站该如何优化才能更吸引用户呢?下面网络推广营销 ...

  9. 前众信旅游B端产品经理吴彪:如何搭建B端电商产品及用户体系

    嘉宾介绍 吴彪,北京树下科技有限公司创始人.于2016年4月1日起,脱产自学产品经理,并在豆瓣中,坚持每天记录,热心于把转型经验分享给产品新人,因此身边聚集了数百位产品经理. 2016年5月初,进入众 ...

  10. 开发用户导航栏和权限信息接口

    我们先来开发菜单的接口,因为这3个表:用户表.角色表.菜单表,才有菜单表是不需要通过其他表来获取信息的.比如用户需要关联角色,角色需要关联菜单,而菜单不需要主动关联其他表.因此菜单表的增删改查是最简单 ...

最新文章

  1. shell整理(41)====判断输入是不是ip
  2. python内置的读取文件函数_Python函数篇(3)-内置函数、文件处理(已更新)
  3. 类型的设计--类型和成员基础(一)
  4. php缩图代码是什么,php生成缩略图示例代码分享(使用gd库实现)
  5. 三次握手和四次挥手图解_图解TCP三次握手和四次挥手
  6. SPLIT 分区的简单研究
  7. (~最新合集~)计算机网络谢希仁第七版 第二章课后答案
  8. 正则表达式从入门到实战
  9. ios开发之使用多文件上传的简单封装最原始的
  10. Android官方开发文档Training系列课程中文版:动画视图之创建自定义转场动画
  11. 在aarch64-himix100-linux-gcc下cmake报错(The C compiler identification is unknown)
  12. mysql事务的好处_什么是事务(transaction)?它有什么好处
  13. wps linux 64 下载,WPS For Linux 10.1.0.6757社区版发布下载
  14. 斯坦福大学NLP课程CS224N课第一次作业第一部分
  15. 手机网页 弹窗layerUI
  16. wpa_supplicant配置
  17. LM358恒流恒压原理
  18. Oracle 后台进程详解
  19. 阿斯蒂芬萨法撒旦法撒旦发射点发射得分萨法撒旦法撒旦法
  20. 基于再生龙(clonezilla)的系统镜像的备份和还原

热门文章

  1. SQL Server中的事务日志管理(2/9):事务日志架构概述
  2. InnoDB脏页,重做日志文件
  3. 关于字符 字节 python3
  4. 远程团队开发10个热门的项目管理软件
  5. (三)洞悉linux下的Netfilteriptables:内核中的rule,match和target
  6. Linux电源管理(2)_Generic PM之基本概念和软件架构
  7. allwinner h3 通用DMA 驱动(SylixOS 操作系统)
  8. glew,glfw实现最新的opengl-学习笔记4实现纹理
  9. 《WebGL编程指南》学习笔记——3.在Canvas中使用WebGL
  10. PyTorch入门(二)从零开始搭建一个神经网络