基于微信的区域互助合作公众平台开发_第1页
基于微信的区域互助合作公众平台开发_第2页
基于微信的区域互助合作公众平台开发_第3页
基于微信的区域互助合作公众平台开发_第4页
基于微信的区域互助合作公众平台开发_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题 目: 基于微信的区域互助合作公众平台开发 姓 名: 学 院: 专 业: 班 级: 学 号: 指导教师: 职称: 年 月 日 目录摘要1关键词1Abstract1Key words11.微信公众平台介绍及需求分析21.1当前微信公众平台开发的基本情况21.2 需求分析21.3 实现内容概述22.微信平台设置开发32.1微信开发者中心32.1.1 SAE的应用32.1.2服务器配置及交互原理分析42.2基础接口配置52.2.1接受用户消息52.2.2发送被动响应消息62.2.3接受事件推送消息72.3自定义菜单72.4获取用户地理位置82.4.1获取用户坐标位置82.4.2坐标转换到地址82.

2、5获取用户基本信息92.6主要服务功能92.6.1天气预报92.6.2中英翻译92.6.3附近搜索113.互助平台开发113.1相关技术概述113.1.1基于PHP+MySQL+Apache平台的开发113.1.2基于MVC模式的thinkphp框架介绍123.2主要设计123.2.1功能模块设计123.2.2数据库概要设计133.2.3 数据库的详细设计143.3主要功能实现163.3.1全局唯一标识设置163.3.2实时推荐系统163.3.3事件、资源发布173.3.4个人信息列表183.3.5按地理位置查询183.3.6按类型查询193.3.7求助事件响应193.3.8资源、事件评论19

3、4.总结与展望194.1工作总结194.2后续工作展望19致谢19参考文献:20基于微信的区域互助合作公众平台开发 摘要:针对信息阻塞及信息不对等带来的资源利用率偏低及生活成本偏高,本平台旨在将众多需求信息集成,尽可能实现区域内信息对等的同时,提高问题解决的效率。为达到上述目的,开发了微信公众平台,以确保足够的用户数量,同时能够实时地与用户进行交互。为确保平台的实时性及多用户运行,并能在微信平台内添加服务功能以方便用户生活,使用SAE服务器,并基于Apache+PHP+ MySQL的组合,搭建互助平台后台,使用HTML/CSS搭建前端,完成平台数据处理的相关功能,使得用户能够在平台上发布所需内

4、容及可提供的资源,并对他人的求助进行响应,实现区域内的互助。关键词:微信公众平台;SAE服务器;PHPMutual Cooperation Based on WeChat Area Public Platform Development Abstract:For inefficient resource utilization and the high cost of living result from information block and unequal information, this platform is designed to integration numerous de

5、mand information, as far as possible to achieve equivalence of information in the area, at the same time, improveing the efficiency of problem solving. To achieve the above purpose, this paper developed a WeChat public platform, to ensure that sufficient number of users, at the same time, real time

6、interact with the user. In order to ensure the real-time of platform and can be used by multiple users, be able to add service funtion in WeChat platform for users, use the SAE server, and based on the combination of Apache + PHP + MySQL, construct platform with mutual background, using HTML/CSS fro

7、nt-end setup, complete the relevant function of data processing platform, enables the user to the platform is required for release content and response to others request of help, to achieve regional and mutual assistance.Key words: WeChat public platform;SAE server;Hypertext Preprocessor长期以来,任何交易获利均

8、是建立在信息不对等的基础之上,以此产生了阶级,以及贫与富的巨大差距。现如今,两大技术互联网技术及移动端技术的迅猛发展,为打破这种交易模式,实现信息对等交换提供了可能。区域互助合作功能搭建于微信平台之上,能够实现一定范围之内,个体之间的互助。尽可能减少中间环节,避免时间、资源的浪费,多快好省的解决问题,是本平台的核心目标。微信的巨大用户群,为信息的数量及使用者的数量提供了保证。与此同时,本平台的开发使用,有助于更近一步的资源优化组合、资源合理利用。同时,区域互助合作平台的使用,更有助于区域内人与人和谐友善关系的建立。1.微信公众台介绍及需求分析1.1当前微信公众平台开发的基本情况随着智能手机更新

9、换代速度的大幅加快,移动端功能的大幅扩充,无线网络的全面覆盖,移动设备正在以惊人的速度改变这人们的生活方式。在微信已成为一种重要信息传播方式的今天,通过微信平台,很多以往的不可能成为可能。2015年4月20日,中国新闻出版研究院公布第十二次全国国民阅读调查结果,微信阅读被首次纳入调查。结果显示,我国成年人手机阅读群体的微信阅读使用频率为每天两次,人均每天微信阅读时长超过40分钟1。微信成为用户在移动端的一个重要信息接入口。而这其中来自于微信公众号的信息又占据了大部分比重。微信公众号依托多媒体图文推送、互动方便快捷等优势备受用户青睐2。用户在通过微信发送多种信息的同时,与各大网络社交公司的合作,

10、也为微信带来了更多潜在用户群体。微信的出现,特别是其独创性的扫码功能,某种程度上革新了人们的生活方式。订阅号可以每天群发一条信息,默认没有自定义菜单接口,不能申请高级接口、微信支付及商户功能,但认证后可以获得自定义菜单接口。服务号每月可以群发一条信息,默认有自定义菜单接口,认证后每月可以群发四条信息,还将获得高级接口,并且可以申请微信支付功能。1.2 需求分析尽可能的实现区域内的资源共享与用户互助,降低信息发布的门槛,提高信息获取的及时性与快捷性,是本平台开发的宗旨。在日常生活中,很大程度上当我们个体遇到难以解决亦或不能解决的问题时,可能解决这个问题的专家就住在隔壁。所以,本平台旨在将众多需求

11、信息集成的同时,集思广益,将众人的能力集成与同一平台。在集思广益,尽可能多快好省的完成个人目的的同时,完成大量信息的收集,尽可能实现区域内信息的对等。综上分析,互助平台在模块层面可以分为以下模块:(1)基于微信平台的生活功能;(2)个人信息的存储;(3)求助事件、共享资源的发布、响应和评论;(4)对于用户可能需要信息的实时推荐。1.3 平台总体设计路线本项目搭建于微信公众平台,结合PHP+MySQL技术实现的自建平台,通过微信平台获取用户的唯一标识和位置坐标,将获取到的信息传递给自建平台,从而使自建平台能够完成在指定区域范围内的互助信息处理,总体设计路线图如下:图 1-1 总体设计路线图具体实

12、现流程如下:(1)微信平台通过与用户的信息应答获取用户的唯一标识和地理位置,并将之传递给自建平台;(2)用户使用自建平台,发布自己所需要的求助事件,或者自己所能提供的资源、服务;(3)使用者可以指定半径进行搜索,获取范围内其他使用者的求助、资源或服务信息;(4)用户可以对自己所需要的资源信息进行预约,对自己能够提供帮助的求助信息进行应答,以实现区域内的高效互助;(5)用户可以查看搜索到资源的评论信息,并在评论区进行留言交流,从而能够进一步增加信息的准确性与高校性;(6)系统对用户的长期行为进行分析,提取特征,并与用户所在区域内的资源或求助事件进行比对,并将比对结果推荐给用户,以方便用户更为高效

13、的获得自己所需要的信息。2.微信平台配置 2.1微信开发者中心这里使用了新浪云服务器,支持程序的运行并且有域名或者拥有可有效访问IP。在完成程序开发后,开发者需要将程序上传到服务器,才能被微信访问到,并进行响应。2.1.1 SAE的应用使用SAE作为服务器资源,使用PHP环境+MySQL数据库搭建运行环境。创建新应用,选择及填写相应标识信息。同时,创建数据库、版本,选择SVN托管方式作为代码管理的方式。将使用程序代码与微信公众平台对接,用专业的软件存为utf-8格式的index.php文件后上传至服务器。SAE配置示意图如下: 图 2-1 SAE配置示意图2.1.2服务器配置及交互原

14、理分析首先需要配置服务器。填写所使用服务器域名,Token(服务器验证标识),选择加解密方式已完成公众平台与SAE的对接。当开发者第一次向SAE申请时,微信端将附带参数的GET请求传递到填写的URL上,SAE进行校验,来判断此条消息是否属实。此后,每次SAE收到用户消息时,微信端会使用带参的GET请求访问既定URL,SAE依然通过对签名的校验判断此条信息是否为对应微信端所发送。SAE服务器通过检验签名对请求进行校验。若核准此次GET请求来自对应微信端,则原样返回echostr参数内容,接入生效,成功成为开发者,否则接入失败3。校验示意图如下:图 2-2 服务器验证示意图加密/校验流程如下:1)

15、 将token、timestamp、nonce三个参数进行字典序排序2) 将三个参数字符串拼接成一个字符串进行sha1加密3) 开发者获得加密后的字符串可与signature对比,核准该请求是否来源于微信消息交互原理示意图如下:图 2-3 消息交互原理用户在发送一个触发事件后(文字,图片,地理位置等),微信端将封装一个固定格式的返回消息,SAE服务器回复一个事件给公众平台,以平台作为媒介回复给用户,在这个过程中,发送方和接收方进行了调换(ToUserName和FromUserName值互换),消息事件的的传递都是以XML格式在后台进行。关键代码如下: public function valid

16、() $echoStr = $_GET"echostr" $signature = $_GET"signature" $timestamp = $_GET"timestamp" $nonce = $_GET"nonce" $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if($tmpStr = $signat

17、ure)header('content-type:text'); echo $echoStr; exit; 2.2基础接口配置2.2.1接受用户消息消息类型包括:文本(包括表情)、图片、语音、视频、位置、链接。这些类型的消息发送后均以XML格式存储于后台。以地理位置为例,其XML格式为: ToUserName 消息接收方微信号,唯一FromUserName 消息发送方微信号(用户唯一OPENID)CreateTime 消息创建时间MsgType 消息类型,地理位置为locationLocation_X 地理位置纬度Location_Y 地理位置经度Scale 地图缩放大小Lab

18、el 地理位置信息MsgId 消息ID号先提取消息类型($postObj->MsgType),从而实现各种消息类型的分离。同时定义接受各类消息类型的接收方法函数。返回消息的主要特征值,组成回复内容。关键代码如下:public function responseMsg() $postStr = $GLOBALS"HTTP_RAW_POST_DATA" if (!empty($postStr) $this->logger("R ".$postStr); $postObj = simplexml_load_string($postStr, '

19、;SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) case "event": $result = $this->receiveEvent($postObj); break; case "text": $result = $this->receiveText($postObj); break; 2.2.2发送被动响应消息公众平台能够以文本、图片、语音、视频、音乐、图文六种消息类型进行回复。主要方式为文

20、本和图文。这里给出图文消息的XML格式:FromUserName 消息发送方ToUserName 消息接收方CreateTime 消息创建时间MsgType 消息类型,图文消息必须填写newsContent 消息内容,图文消息可填空ArticleCount 图文消息个数,限制为10条以内Articles 多条图文消息信息Title 图文消息标题Description 图文消息描述 PicUrl 图片链接,支持JPG、PNG格式Url 点击图文消息跳转链接FuncFlag 星标字段图文消息的发送,有助于引起使用者兴趣,同时极大地丰富了消息发送的形式。关键代码如下: private functio

21、n receiveLink($object) $content = "你发送的是链接,标题为:".$object->Title.";内容为:".$object->Description.";链接地址为:".$object->Url; $result = $this->transmitText($object, $content); return $result; private function transmitText($object, $content) $xmlTpl = "<xml>

22、; <ToUserName><!CDATA%s></ToUserName> <FromUserName><!CDATA%s></FromUserName> <CreateTime>%s</CreateTime> <MsgType><!CDATAtext></MsgType> <Content><!CDATA%s></Content> </xml>" $result=sprintf($xmlTpl,$obje

23、ct->FromUserName, $object->ToUserName, time(), $content); return $result; 2.2.3接受事件推送消息在基础接口中的事件消息仅包括用户在关注和取消关注,更多的事件消息会在自定义菜单及高级接口中介绍。在单击关注或取消关注按钮时,会触发subscribe或unsubscribe事件类型,从而完成程序中既定操作,如获取用户信息等。关键代码如下: private function receiveEvent($object) $content = "" switch ($object->Even

24、t) case "subscribe": $content = "欢迎关注 " include("useinfo.php"); $content = getUserinfo($object); break; case "unsubscribe": $content = "取消关注" break; case "CLICK": switch ($object->EventKey) case "天气预报":$content = "请输入:天气+(

25、城市名)" break; default: $content = "点击菜单:".$object->EventKey; break; 2.3自定义菜单介绍个人订阅号只能编辑生成菜单,无法开发、企业订阅号通过微信认证;可以申请到自定义菜单资格,服务号默认有菜单权限。自定义类型包括如下(1)click:点击推事件单击click类型按钮后,推送附带按钮中的key值的event事件给开发者,开发者通key值识别消息,从而完成进一步的交互;(2)view:跳转URL单击view类型按钮后,会跳转到开发者在按钮中填写的网页URL,从而能够在跳转到的URL上,结合获取到的

26、用户信息进行操作。(3)scancode_push:扫码推事件单击按钮后,将调用自带的扫码功能,完成相关操作后,根据结果进行显示或跳转,并将结果反馈给开发者。(4)、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框单击按钮后,同样将调用自带的扫码工具,完成扫码操作,并将扫码的结果传给开发者,然后弹出“消息接收中”提示框,随后开发者可以根据获得的结果下发消息。(5)、pic_sysphoto:弹出系统拍照发图单击按钮后,将调起移动端系统相机,完成拍照操作,将拍摄的相片发送给开发者,同时推送事件给开发者,开发者根据收到的结果(6)、pic_photo_or_album:弹出拍

27、照或者相册发图单击按钮后,系统将弹出“拍照”或者“从图库选择”两种操作选择。用户选择后进入两种不同流程。(7)、pic_weixin:弹出微信相册发图器单击按钮后,系统将调起微信相册,用户进行照片选择,将选择的照片发送给开发者的SAE服务器,并推送事件给开发者,开发者根据获得的照片以及推送的事件进行一系列的信息处理,并反馈结果给用户。(8)、location_select:弹出地理位置选择器单击按钮后,调用微信自带的地理位置选择工具,拖拽地图完成地理位置选择操作,将选择的地理位置以坐标形式发送给开发者服务器,开发者根据获得的地理位置坐标完成一系列既定操作,并将后台信息处理的结果反馈给用户。(9

28、)、media_id:下发消息单击media_id类型按钮后,微信服务器会将开发者提前在编辑模式下,编辑的对应于永久素材id的永久素材推送给用户。(10)、view_limited:跳转图文消息URL单击view_limited类型按钮后,微信客户端将跳转到开发者提前在编辑模式下,编辑的对应于永久素材id的URL,此时永久素材类型只支持图文消息。成功后返回JSON数据包如下:"errcode":0,"errmsg":"ok"2.4获取用户地理位置2.4.1获取用户坐标位置当公众号得到了获得用户地理位置的高级接口后,用户在关注该公众平台

29、后,进入公众号进行会话时,可以通过自定义菜单按钮类型设置,弹出让用户进行地理位置选择的微信自带地理位置选择器。当用户根据信息提示,选择并上传自己的地理位置后,开发者服务器将对获得的地理位置进行存储和相应处理,以完成对应功能。2.4.2坐标转换到地址当开发者服务器获取到用户的地理位置坐标后,需要在后台坐标转换成用户的真实所在地,以便于更直观的理解并进行分析。通过逆地址解析功能,由经纬度信息得到地址信息。2.5获取用户基本信息在关注者对公众号进行关注操作后,公众号可以XML格式获得关注者的唯一标识(加密后的微信号,公众号与关注者之间为一对一的关系,不同公众号不会相互影响)。公众号可通过该方式,经过

30、用户的授权后,获取一系列用户的基本信息。2.6主要服务功能2.6.1天气预报 通过获取中国天气网的气象数据,实现天气预报功能,方便用户查询。国家根节点接口,以XML格式列出所有的省(自治区、直辖市)的中文名称(quName)和拼音名称(pyName)及省会城市的天气信息。省级节点接口,以XML格式列出当前省下辖所有市的中文名称(quName)、拼音名称(pyName)、中心坐标、天气信息以及城市编码。六日天气数据,以JSON格式列出当前城市的六日天气状况。将城市名转为城市代码的方法,这将在用户发送城市名的时候调用。编写接口调用函数,用于向天气网发送cURL请求,获取数据。编写获取天气数据的函数

31、,这里获取实时天气和未来3日天气,并将返回结果封装成图文信息的数组。在微信公众平台接口函数中处理收到的文本消息时,文本将为城市名,直接调用获取天气的函数。天气预报功能效果图如下:图 2-4 天气预报功能效果图A图 2-5 天气预报功能效果图B 2.6.2中英翻译 生活中大量接触到英语,当碰到不熟悉的单词或者句子时,本公众平台提供的英汉互译功能将给使用者帮助。版本:1.1,请求方式:get,编码方式:utf-8主要功能:中英互译参数说明:type - 返回结果的类型,固定为datadoctype - 返回结果的数据格式,xml或jsonversion - 版本,当前最新版本为1.1errorCo

32、de:0 - 正常20 - 要翻译的文本过长30 - 无法进行有效的翻译40 - 不支持的语言类型50 - 无效的key中英翻译功能效果图如下:图 2-6 中译英效果图 图 2-7 英译中效果图2.6.3附近搜索 通过附近搜索功能,能够高效的找到所需要的服务。通过公众平台获取用户位置;其次,获取周边区域信息。使用API接口,用于返回查询某个区域的某类POI数据,且提供单个POI的详情查询服务,用户可以发送HTTP请求且接收json、xml的数据。Place API 提供区域检索POI等一系列服务。使用圆形区域检索来实现附近搜索功能。将获取的JSON格式用户坐标信息进行编码,存在数组中,导入数据

33、库,key值为openid。使用cURL获取查询结果。将JSON格式的字符串解码成数组,检查接口返回是否异常及是否有内容返回。拼接内容,封装成如文消息返回。附近搜索功能效果图如下:图 2-8 附近医院查询效果图图 2-9 附近宾馆查询效果图3.互助平台开发3.1相关技术概述3.1.1基于PHP+MySQL+Apache平台的开发 Apache+PHP+MySQL的组合,简称AMP, 是一个黄金开发组合。Apache:Web服务器软件,它快速、可靠并且可通过简单的API扩充,将Python/PHP等解释器编译到服务器中4。PHP:是一种通用开源脚本语言。该语言吸收了C等语言的精华的同时,摆脱了静

34、态语言的局限性,常用语Web领域的开始。MySQL:MySQL 是一种关联数据库管理系统,数据由用户分类保存在用户制定的表中,而不是所有数据集中在一起,大大提高了数据存取的速度与灵活性。与Oracle、DB2、SQL Server 等数据库类似5。3.1.2基于MVC模式的thinkphp框架介绍 ThinkPHP 是一个免费开源的,快速、简单的,面向对象的轻量级PHP 开发框架,遵循Apache2 开源协议发布,是为了简化企业级应用开发和敏捷Web 应用开发而诞生的。ThinkPHP 借鉴了国外多种优秀的框架和模式,采用面向对象的开发结构和MVC 设计模式,融合了Struts 的Action

35、 思想和JSP 的TagLib模式,封装了curd和一些常用操作,单一入口模式等,在模板引擎、缓存机制、认证机制和扩展性方面均有独特的表现。使用MVC 架构Web 应用程序,可以使程序结构更加清晰,增强代码的稳定性和重用性6。3.2主要设计 3.2.1功能模块设计(1)资源、事件发布功能根据唯一标识,用户名获取用户基本信息,而后选择事件时间、类型、发布日期,并未发布事件添加详细说明后,连同用户基本信息一起上传至服务器事件表。(2)个人信息管理功能设计根据唯一标识,用户名从事件表中获取该用户发布的所有事件、资源,及所处的状态,并对用户发布的事件、资源及其相关响应、评论信息进行管理。(3)推荐系统

36、设计根据用户最近行为的分析,提取用户行为特征,通过地理位置与附近可获得的资源进行比对,从而较为准确的为用户推荐适合用户的资源。(4)查询功能可分为按类型或按地理位置查询。a) 按事件(资源)类型查询即根据选择的事件(资源)类型,从事件(资源)列表中查找符合类型的未响应事件,并列表显示。b) 按地理位置查询事件(资源),即根据使用者本身的经纬度坐标,查找在给定半径之内的未响应求助事件(共享资源),并列表显示。(5)响应、评论功能对查询到的列表显示事件进行响应操作,改变该事件后台状态并记录响应者。互助平台功能设计图如下:图 3-1 互助平台功能设计图3.2.2数据库概要设计首先确定数据文件的命名,

37、日志文件的命名。一般来说,数据库系统会自动维护系统内存,但有时为了某些性能问题,可以根据需要对数据库的内存管理进行另行配置.本系统涉及到的实体有:天气:属性有城市编号、城市名;地址:属性有唯一标识、经度、纬度;事件:属性有唯一标识、事件类型、事件主题、事件发布时间、事件发布地经度、纬度、时间具体描述、响应信息;用户信息:属性有唯一标识、用户名、联系方式、经度、纬度。使用者记录:属性有唯一标识用E-R图表示其各关系如下:图 3-2互助平台数据库E-R图3.2.3 数据库的详细设计系统数据共建有用户表、求助事件表、共享资源表、地址表、事件响应表、资源评价表、用户行为特征表、用户OPENID暂存表共

38、8张表。下面介绍本系统关键的数据库表:1)用户信息:存储用户基本信息及地理位置 表 3-1 用户信息表 2)求助事件表:记录用户发布的求助事件表3-2 求助事件表3)共享资源表:记录用户发布的共享资源表3-3 共享资源表4)地址信息表:记录用户地址表3-4地址信息表5)资源评价表:记录对于共享资源的评价表3-5 资源评价表以上为数据库的详细设计,系统开发基于此设计相关信息的查询及各属性的存储过程,并在之后的需求变更及开发维护过程中进行优化设计。3.3主要功能实现 3.3.1全局唯一标识设置使用微信公众平台提供的唯一微信标识,即FromUserName作为全局唯一标识。在获取用户FromUser

39、Name后,使用COOKIE暂存该数据。同时通过地理位置提交按钮获取用户位置坐标,并进行暂存。当点击互助系统平台按钮时,将暂存的唯一标识和地理位置添加进用户使用列表,从而完成用户基本信息的设置。3.3.2实时推荐系统 在信息时代,用户对信息的需求通过海量数据得到满足,但随着信息时代的到来,越来越多的信息爆炸式增长,网络监管体系并不健全导致的垃圾信息增加,用户将难以高效的获得对自己所需的信息,信息利用率反而降低7。为了准确高效的向用户推荐适合用户的的信息,引入基于内容的实时推荐系统,推荐系统组成如图3-3所示:图 3-3 推荐系统组成通常由个重要的模块组成:用户特征收集模块,用户行为建模与分析模

40、块,推荐与排序模块8。推荐系统通过用户特征收集模块收集用户的历史行为,并使用用户行为建模和分析模块构建合适的方法分析用户偏好,计算相似度等,最后通过推荐与排序模块计算用户感兴趣的信息,并将信息排序后推荐给用户9。本平台使用基于内容的推荐方法,步骤如下:(1)通过用户最近发布的求助事件或共享资源,采集用户的行为,即从记录用户行为的数据库中获取用户最近且经常使用的字段;(2)对采集到的用户行为进行分析及特征提取,获取用户的偏好信息,即将获取到的字段通过正则表达式进行分词操作,将关键词输出;(3)根据用户的偏好信息,在以用户坐标为中心的一定区域内,比对用户偏好和其他用户发布求助或资源信息的相似情况,

41、即按照频率顺序从高到低,将提取出的关键词与用户所处地理位置范围内出现的资源或事件进行比对,得到相似信息10;(4)对相似的信息按照发布时间进行排序,并向输出推荐结果。推荐功能效果图如下所示:图 3-4 推荐功能效果图3.3.3事件、资源发布根据唯一标识,用户名获取用户基本信息,而后选择事件时间、类型、发布日期,并对发布事件(资源)添加详细说明后,连同用户基本信息一起上传至服务器事件表。信息发布界面如图2-5所示:图 3-5 信息发布效果图3.3.4个人信息管理 根据唯一标识,用户名从事件表中获取该用户发布的所有事件、资源所处的状态及相关评论、响应者信息,并进行管理操作。3.3.5按地理位置查询

42、 按地理位置查询事件,即根据使用者本身的经纬度坐标,查找在给定半径之内的未响应的求助事件或可获得的共享资源,按更新时间排序,并列表显示。使用算法计算范围,核心代码如下:function getarea($r,$lat,$lon)$latitude = $lat; $longitude = $lon; $PI = 3.14159265; $degree = (24901*1609)/360.0; $raidusMile = $r; $dpmLat = 1/$degree; $radiusLat = $dpmLat*$raidusMile; $minLat = $latitude - $radiu

43、sLat; $maxLat = $latitude + $radiusLat; $mpdLng = $degree*cos($latitude * ($PI/180); $dpmLng = 1 / $mpdLng; $radiusLng = $dpmLng*$raidusMile; $minLng = $longitude - $radiusLng; $maxLng = $longitude + $radiusLng; $area1 = array('minLat' => $minLat, 'minLng' => $minLng, 'maxLat' => $maxLat ,'maxLng' =&g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论