如何在手机应用程式中使用Google地图资料

这一篇是我在How to use Google Maps data in mobile applications的中文翻译,网址在如何在手机应用程式中使用Google地图资料
为了备份,并转贴在此:

这篇文章会解是在手机应用程式中如何使用Google地图的资料。
Google地图提供允许用简单的HTTP请求来存取其表象化状态转变(REST)的服务,所以这样可以很容易地整合到手机应用程式中。

申请Google地图API金钥

注意:使用这个免费的Google地图APU金钥程式会违反Google的条款和条件 (10.8节),假如你想要使用这个例子中的Google地图API你应该购买企业许可证。

首先你需要在这一页申请:
http://code.google.com/apis/maps/signup.html
一旦你申请了,你会取得一把金钥(一个简单的字串)这样你就可以使用来查询Google的地图服务。

静态地图

标准的Google地图程式码是可以用于Web应用程式的,然而,它包括了很多的Ajax函式,假如你想要建构手机应用程式的话可能不太有用,解决的方法是使用静态地图服务可以允许撷取单一的影像,这些影像可以容易地用在手机应用程式中。

静态地图服务支援不同的影像格式(png32、GIF、JPG)及自订的影像尺寸,这样你就可以取得不同目的的完美影像,举一个例,假如你想要撷取位置在:

  • 纬度: 41.867878
  • 经度: 12.471516

你可以用HTTP GET的请求方式来简单地撷取这个URL:

http://maps.google.com/staticmap?center=41.867878,12.471516&format=png32&zoom=8&size=240x320&key=<API_KEY>

这个方式可以取得一个宽240像素高320像素的PNG32的影像,其中心点在(41.867878,12.471516),并且其缩放及别为8(缩放的范围从0到19)
Image:Google_staticmap.jpg

Geocode一个地址

从Google地图文件:
Geocoding是转换地址(像是”320台湾桃园县中坜市永泰街129号”)为地理座标(像是纬度24.958686,经度121.231145)的程序

下面的范例描述建构一个应用程式来显示使用者输入的地址,首先你需要geocode地址到地理座标,
要这样作,Google地图提供另一个表象化状态转变服务可以容易地用简单的HTTP请求存取,

假如你想要地理编码这个地址
320台湾桃园县中坜市永泰街129号
从你的程式码请求这个URL

http://maps.google.com/maps/geo?q=320台湾桃园县中坜市永泰街129号&output=csv&key=<API_KEY>

然后你会取得这个输出:

200,6,24.958686,121.231145

在这里:

  • 第一个数字是一个编码,在这里(200)意思是地理编码是成功的(完整的状态编码列表见:[1])
  • 第二个数字给定地理编码的精确度(从0到9 – 最大精确度)
  • 第3个及第4个数字表示地理编码地址的纬度及经度,所以这些座标可以用来透过静态地图服务撷取地图。

还有你会看见在地理编码请求中有一个’output’参数,这个意指你可以选择你喜欢的输出格式,支援的格式有:

  • xml
  • kml (跟xml相同但是不同的Content-Type)
  • json (对手机应用程式不是真正有用)
  • csv (逗号分隔值)

代理伺服器的使用限制

因为你的Google地图API金钥受限于一个特定的URL才能存取地图服务,所以你需需要设定一个代理伺服器这样才可以从手机应用程式接收HTTP请求然后并转送这些请求给Google Maps REST URLs,接着Google回应给行动客户端。

另外也要知道每天的请求数目的限制,包括静态地图及地理编码,对于个人使用来说是够用的,但是你假如你计划开发商业服务时需要知道这一点。

范例应用程式

Image:j2me_google_maps.jpg
一个J2ME范例应用程式,使用上述的方法,可以在这一页下载: Google Maps J2ME 测试
在这例子里使用的Google Maps J2ME API原始码可以在这里下载:J2ME Google Maps API

相关内容

2 則留言

  1. Author

    噫?这是怎么一回事?我什么时候被关注的?不过感谢您的告知及支持喔?

Comments are closed.