快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

精通Grails: Grails服务和Google地图

时间:2011-07-29 IBM Scott Davis

自本系列的 第一篇文章 开始,我就一直在构建一个 trip-planner 应用程序。目前基本的模型-视图 -控制器(Model-View-Controller,MVC)框架已经准备就绪,我将加入一些外部技术,具体来讲,我将 加入地图功能。虽然我可以表示 “我的旅程是从丹佛到罗利,途经圣何塞和西雅图”,但地图将能更好 地描述旅途路线。您可能知道西雅图和罗利是在美国的两端,但地图能够帮助您显示出两个城市之间的距 离。

这个应用程序有什么用?本文的末尾为您提供一个大体的介绍。请访问 http://maps.google.com 并 在搜索框内输入 IATA 代码 DEN。将出现丹佛国际机场(Denver International Airport),如图 1 所 示(更多的 IATA 代码,参见 上个月的文章)。

图 1. 丹佛机场(由 Google Map 友情提供)

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

除了能显示您在 HTML 表创建的美国机场以外,trip planner 还将在地图上把机场描绘出来。在本文 中,我将使用免费的 Google Maps API。我还可以使用免费的 Yahoo! Maps API,等等(参见 参考资料 )。一旦了解在线 Web 地图绘制的基本原理之后,您将发现不同的 API 之间能够合理地互换。在讨论该 解决方案的地图绘制部分之前,您需要了解如何将一个简单的三个字母的字符串(如 DEN)转换为地图上 的一点。

地理编码

当向 Google Map 输入 DEN 时,这个应用程序在幕后进行了一些转换。您可能用街道地址(如 123 Main Street)的方式想象地理位置,但 Google Map 需要一个纬度/经度点,以便在地图上把它显示出来 。这并不需要您自己设法提供纬度/经度点,应用程序会替您把人类能够识别的地址转换为纬度/经度点。 这一转换过程称为地理编码(参见 参考资料)。

浏览 Web 时,也会发生一个类似的转换。从技术角度来说,联系远程 Web 服务器的惟一方式是提供 服务器的 IP 地址。幸运的是,您不需要自己输入 IP 地址。只要将友好的 URL 输入到 Web 浏览器,它 将调用域名系统(DNS)服务器。DNS 服务器会将 URL 转换为对应的 IP 地址,然后浏览器与远程服务器 建立 HTTP 连接。所有这些对用户而言都是透明的。DNS 使 Web 的使用容易了很多。同样,地理编码器 也使基于 Web 的地图绘制应用程序更加容易使用。

在 Web 上快速搜索免费地理编码器 会产生许多符合 trip planner 地理编码需求的结果。Google 和 Yahoo! 都提供地理编码服务,并把它作为 API 的标准部分,但针对这个应用程序,我将使用由 geonames.org(参见 参考资料)提供的免费地理编码服务。它的 RESTful API 允许我指明我提供的是 IATA 代码,而不是通用的文本搜索术语。比如,ORD 并不是指内布拉斯加州 Ord. 市的居民,ORD 指的 是 Chicago O''Hare International Airport。

在 Web 浏览器中输入 URL http://ws.geonames.org/search? name_equals=den&fcode=airp&style=full。您将看到 XML 响应,如清单 1 所示:

清单 1. 来自地理编码请求的 XML 结果

<geonames style="FULL">   <totalResultsCount>1</totalResultsCount>   <geoname>    <name>Denver International Airport</name>    <lat>39.8583188</lat>    <lng>-104.6674674</lng>    <geonameId>5419401</geonameId>    <countryCode>US</countryCode>    <countryName>United States</countryName>    <fcl>S</fcl>    <fcode>AIRP</fcode>    <fclName>spot, building, farm</fclName>    <fcodeName>airport</fcodeName>  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号