快速业务通道

精通Grails: Grails服务和Google地图 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
bmit class="save" value="Update" /></span>    <span class="button">     <g:actionSubmit class="delete"             onclick="return confirm(''Are you sure?'');"             value="Delete" />    </span>   </div> </g:form>

精通Grails: Grails服务和Google地图(6)

时间:2011-07-29 IBM Scott Davis

所产生的表单如图 4 所示:

图 4. 编辑 Airport 表单

精通Grails: Grails服务和Google地图 - 编程入门网

单击 Update 按钮将表单值发送到 update 闭包。将服务调用和 hashmap 合并添加到默认代码,如清 单 10 所示:

清单 10. 修改 update 闭包

def update = {    def airport = Airport.get( params.id )    if(airport) {      def results = geocoderService.geocodeAirport(params.iata)      airport.properties = params + results      if(!airport.hasErrors() && airport.save()) {        flash.message = "Airport ${params.id} updated"        redirect(action:show,id:airport.id)      }      else {        render(view:''edit'',model:[airport:airport])      }    }    else {      flash.message = "Airport not found with id ${params.id}"      redirect(action:edit,id:params.id)    } }

到目前为止,您已经像 Google Map 一样无缝地将地理编码集成到您的应用程序里。花点时间想一想 在应用程序中捕获地址的所有位置 — 顾客、雇员、远程办公室、仓库和零售点等等。通过简单地添加几 个字段以存储纬度/经度坐标和加入一个地理编码服务,就能够设置一些简易的地图来显示对象 — 这正 是我下一步的工作。

Google Map

许多人都知道为了易于使用,Google Map 针对 Web 地图绘制设置了标准。但很少人知道到这个标准 也适用于将 Google Map 嵌入到您自己的 Web 页面中。为数据点获取纬度/经度坐标是这个应用中最困难 的部分,但我们已经解决了这个问题。

要将 Google Map 嵌入到 Grails 应用程序中,首先要做的是获得一个免费的 API 密匙。注册页面详 细说明了使用条款。实际上,只要您的应用程序是免费的,Google 也将免费为您提供 API。这意味着您 不能对 Google Map 应用程序进行密码保护、收取访问费用或把它托管防火墙后面(做个广告:由我撰 写的 GIS for Web Developers 一书将逐步指导您使用免费数据和开发源码软件构建类似于 Google Map 的应用程序;参见 参考资料。这使您不再受到 Google 的 API 使用限制的约束)。

API 密匙通常绑定到一个特定的 URL 和目录。在表单中输入 http://localhost:9090/trip 并单击 Generate API Key 按钮。确认页面将显示刚生成的 API 密匙、与密匙相关联的 URL 和一个 “get you started on your way to mapping glory” 的示例 Web 页面。

为了将这个示例页面并入到 Grails 应用程序,需要在 grails-app/views/airport 目录中创建一个 名为 map.gsp 的文件。从 Google 将示例页面复制到 map.gsp。 清单 11 展示了 map.gsp 的内容:

清单 11. 一个简单的 Google Map Web 页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">   <head>    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>    <title&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号