您所在的位置: 首页 > 读书频道 > 设计开发 > 网站开发 >

13.5.1 处理位置管理Ajax请求(1)

http://book.51cto.com  2008-09-26 19:05  (澳)泽瓦斯(Zervaas, Q.)著/苏金国等  人民邮电出版社  我要评论(0)
  • 摘要:《PHP Web 2.0 开发实战》第13章集成Google Maps,本章将在我们的Web应用中集成Google Maps(http://maps.google.com),并将其作为一个使用第三方服务的例子。本小节介绍的是处理位置管理Ajax请求。
  • 标签:PHP  Web应用  Google Maps  Ajax  PHP Web 2.0 开发实战

13.5  在地图上管理位置

下面扩展位置管理页面和JavaScript类,允许用户输入他们希望向地图增加的任何地址。然后完成一个地理编码器请求查找所输入地址的坐标,并将其增加到地图上。另外,我们还将在后台使用Ajax将活动博客帖子的位置保存到数据库。

一旦在地图上显示一个地址,用户就可以把它拖到一个新位置(这会导致新坐标将通过Ajax保存),或者将其从地图上完全删除。

13.5.1  处理位置管理Ajax请求(1)

首先,为处理各个可能的Ajax请求分别创建一个新的动作处理程序(同样在Blogmanager- Controller中),每个动作都会向请求脚本返回JSON数据。我们要处理以下4个动作。

get。使用这个动作返回数据库中存储的对应当前博客帖子的各个位置。最初没有要返回的位置。

add。调用这个动作将一个新位置保存到数据库中。我们将编写一个新的表单处理类来提供帮助。一旦成功地将一个新位置保存到数据库中,则返回其ID以及相应的坐标和描述。返回位置数据时,将把它增加到Google地图。

delete。调用这个动作从数据库中删除一个位置。还必须通知Google地图实时地从地图显示中删除这个位置。

move。这个动作用于更新一个现在位置的坐标。用户将一个位置拖放到地图上一个新点时会启动这个动作。

1.新位置表单处理器

前面提到,要向数据库增加新位置,必须编写一个新的表单处理器。这个类与本书中编写的其他表单处理类几乎相同,所以不做更多解释,见代码清单13-19。这个类存放在一个名为BlogPostLocation.php的文件中(位于./include/FormProcessor目录下)。

代码清单13-19  处理新位置,并相应地保存它(BlogPostLocation.php)

另外,必须修改DatabaseObject_BlogPostLocation类,确保设置了合法的坐标。与在数据库中保存新用户信息一样,这里在DatabaseObject_BlogPostLocation类中创建了__set()方法来完成这些值的预处理。

代码清单13-20显示了增加到BlogPostLocation.php文件(位于./include/DatabaseObject目录下)的代码。这里所做的只是将经度和纬度格式化为一个有6位小数的数字(Google API文档指出这个精度对应为4英寸/11厘米的分辨率)。

代码清单13-20  格式化纬度和经度(BlogPostLocation.php)

 

2.创建locationsManage控制器动作

既然完成了表单处理器,下面来编写用来管理位置的动作处理程序。如前所述,它必须处理4个不同的操作(get、add、delete和move)。

首先,必须初始化动作处理程序,如代码清单13-21所示。由于所有的Ajax请求都要指定action和post_id参数,所以从请求中抽取出这些参数,然后尝试加载相应的博客帖子。另外,由于要为各个动作返回JSON数据,所以初始化一个$ret数组,其中将包含返回数据。

代码清单13-21  初始化动作处理程序并加载博客帖子(BlogmanagerController.php)

 

接下来处理第一个操作:get。加载一个博客帖子时,会自动加载相应的位置(应该记得,本章前面向postLoad()函数增加了这个功能)。

要完成这个动作,需循环处理这些位置,并相应地增加到$ret数组,如代码清单13-22所示。为地图增加位置所需的数据包括位置ID、位置坐标及其描述。

代码清单13-22  处理get动作(BlogmanagerController.php)

  

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
PHP开发基础入门
解析Ajax开发框架 走进Ajax开发应用
Ajax明天会HOT还是OVER?
微软的Ajax:Atlas(ASP.net AJAX)
AJAX 51CTO技术座谈会
 
 验证码: (点击刷新验证码)   匿名发表
  • 互联网时代的软件革命—SaaS架构设计

  • 作者:叶伟等著
  • 本书是国内第一本完整介绍SaaS应用开发的书籍,聚集于架构设计。内容是互联网领域具有丰富实践经验的8位一线架构师,对于多年Sa..
Copyright©2005-2008 51CTO.COM 版权所有