Google 地图 API V3 针对移动设备进行开发
Google官方教程:
针对移动设备进行开发
Google Maps API v3 旨在实现快速加载,并可在移动设备上稳定运行。尤其是,我们已专注于针对 Android 和 iOS 手机等先进的移动设备进行开发。与桌面计算机上的传统浏览器相比,移动设备的屏幕较小。而且,移动设备通常具备独有的特定行为(例如“双指张合缩放”)。如果您想让自己的应用在移动设备上稳定运行,建议您执行以下操作:
- 将包含您地图的
<div>的宽度属性和高度属性都设为100%。不过请注意,在一些旧版的桌面浏览器上使用这些值无法获得良好的显示效果。 - 您可通过检查 DOM 中的
navigator.userAgent属性来检测 iPhone 和 Android 设备:function detectBrowser() {
var useragent = navigator.userAgent;
var mapdiv = document.getElementById("map_canvas"); if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
mapdiv.style.width = '100%';
mapdiv.style.height = '100%';
} else {
mapdiv.style.width = '600px';
mapdiv.style.height = '800px';
}
}这样,您就可以更改特定设备的布局了,就像我们在此处更改各设备的屏幕实际使用面积一样。
- Android 和 iOS 设备会应用以下
<meta>标记:<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
此设置用于指定地图应以全屏模式显示,且用户不得调整地图的大小。请注意,您需要在网页的
<head>元素中添加此<meta>标记,才能使用 iPhone 的 Safari 浏览器。
有关针对 iPhone 进行开发的详情,请参阅 Apple 的开发者文档。有关针对 Android 设备进行开发的详情,请参阅 Android 文档。
本地化
您可以通过更改默认语言设置和设置应用的区域代码来本地化您的 Google Maps API 应用,从而根据给定的国家或地区改变应用的运行方式。
语言本地化
Google Maps API 在显示文本信息(如控件名称、版权声明、行车路线和地图上的标签)时,使用浏览器的首选语言设置。大多数情况下,这是首选的做法;通常您不应覆盖用户的首选语言设置。不过,如果您想要更改 Maps API 以忽略浏览器的语言设置,并使浏览器用特定语言显示信息,可以在加入 Maps API JavaScript 代码时将可选的
language参数添加到<script>标记,以指定要使用的语言。例如,要用日语显示 Maps API 应用,可以将
&language=ja添加到<script>标记,如下所示:<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja">
注意:按照上述方式加载 API 后,不论用户的偏好设置如何,系统都会对所有用户显示日语。在设置此选项之前,请确定您确实希望这么做。
Maps JavaScript API 还支持双向 (Bidi) 文本,即本身同时包含从左到右 (LTR) 和从右到左 (RTL) 语言字符的文本。RTL 语言的示例包括阿拉伯语、希伯来语和波斯语。通常,您应当将dir='rtl'添加到网页的<html>元素中,以指定要正确呈现的 RTL 语言网页。区域本地化
默认情况下,Maps API 会根据加载 API 的主域所在的国家/地区,提供地图图块并偏向应用行为。如果您想要更改应用以提供不同的地图图块或偏向应用(例如,偏向地理编码结果使其靠近某区域),可以在加入 Maps API JavaScript 代码时将
region参数添加到<script>标记中,以覆盖该默认行为。作为 Maps API 应用的开发者,您有责任确保针对应用托管所在的国家/地区进行正确的区域本地化,从而确保您的应用符合当地法律。
region参数接受 Unicode 区域子标记标识符,该标识符通常与国家/地区代码顶级域名 (ccTLD) 一对一映射。除某些明显不同之外,大多数 Unicode 区域标识符与 ISO 3166-1 代码是相同的。例如,英国的 ccTLD 为“uk”(与其域名.co.uk相对应),而其区域标识符则为“GB”。例如,要使用本地化到英国的 Maps API 应用,可将
®ion=GB添加到<script>标记中,如下所示:<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false?ion=GB">
版本控制
Google Maps API 小组会定期更新此 JavaScript API,即增加新地图项、修复错误和改进性能。所有的 API 更改均向后兼容,以确保您启动应用时使用的是当前记录的界面,且应用可在 API 更新后继续运行,而无需进行相关修改。(注意:实验性 API 参考中记录的实验性地图项并不在此担保范围内。实验性地图项将在 API 文档中明确标出。)
版本类型
您只需使用 Maps JavaScript API 引导程序请求的
v参数指定 API 版本,即可指明要在您应用中加载该版本。目前,系统支持以下两个选项:- 发行版本,可使用
v=3或省略v参数来指定。 - 实验版本,可使用
v=3.exp来指定。该版本是以主干版本为基础的当前版本,其中包含公开发布的所有错误修复和新增地图项。 - 编号版本,用
v=3.number表示,指定了 API 的地图项集。
下面的引导程序请求演示了如何请求具体版本的 Maps JavaScript API:
http://maps.googleapis.com/maps/api/js?v=3.9&sensor=true_or_false
每个季度,我们都会构建新的编号版本(“发行版本”),并进行发布以供公众使用。在整个季度期间,在确保地图项集保持稳定的同时,我们还会继续向此发行版本中添加错误修复,Maps JavaScript API 更改日志将会对此进行记录。
当我们发行新的编号版本时,将会“冻结”之前的发行版本,这表示我们不再对其进行任何代码更改更新(包括错误修复),以确保其充分的稳定性。每次我们以此方式推出新的冻结版本时,都会停用现有的冻结版本。也就是说,在任何指定的时间段内,我们只会提供一个冻结版本。请求已停用的编号版本的应用将会自动收到当前的冻结版本。
选择 API 版本
在为您的 Maps API V3 应用选择合适的 API 版本时,可参考以下指南:
- 生产应用应指定发行版本 (
v=3) 或冻结版本。指定已停用的版本(如v=3.0)总是会返回当前的冻结版本。 - Maps API for Business SLA 不适用于当前的实验版本。Maps API for Business 应用必须使用当前的发行版本(当前为 3.9)或较早版本,以便适用 SLA。
- 开发新款 Maps API v3 应用时,建议您根据版本号(例如 3.10)选择使用最新的实验版本,直到您需要添加较新版本中所提供的其他地图项时再改用该新版本。这样,您使用的版本会随着应用的开发而日趋成熟,并会在一段时间后变为发行版本,最终成为冻结版本。
- 请求当前冻结版本或较早版本的生产应用应在每季度对最新的发行版本进行测试,以便在该版本冻结前识别有关向后兼容性方面的任何问题。
版本文档
文档将始终反映实验版本。不过,我们会针对每个版本提供一份单独进行维护的参考。
- 版本 3.9 参考(发行)
- 版本 3.10 参考(实验)
- 版本 3.8 参考(冻结)
- 版本 3.0 到 3.7 都已停用。
问题排查
如果您的代码不起作用,可以参考以下一些方法来解决您遇到的问题:
- 查找拼写错误。请注意,JavaScript 语言区分大小写。
- 使用 JavaScript 调试器。在 Firefox 中,您可以使用 JavaScript 控制台、Venkman 调试器或 Firebug 插件。在 IE 中,您可以使用 Microsoft Script Debugger。该系列抓屏演示了如何使用各种调试工具。
- 有关问题,请在 Google Maps API v3 网上论坛上发帖提问。
Last updated 二月 1, 2013.
Google 地图 API V3 针对移动设备进行开发的更多相关文章
- Google 地图 API V3 使用入门
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google 地图 API V3 之事件
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google 地图 API V3 之控件
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google 地图 API V3 之 叠加层
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google Maps API V3 之绘图库 信息窗口
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google Maps API V3 之 图层
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google Maps API V3 之 路线服务
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- Google Map API V3开发(3)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(1)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
随机推荐
- 《java JDK7 学习笔记》之继承与多态
1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...
- vs.net Web.csproj.webinfo文件
使用VS工具打开工程的时候,请直接打开BookShop.sln文件, 请修改WEB/Web.csproj.webinfo文件中的<Web URLPath = "http://local ...
- Python进阶【第二篇】多线程、消息队列queue
1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并 ...
- Fetch:下一代 Ajax 技术
Ajax,2005年诞生的技术,至今已持续了 10 年.它是一种在客户端创建一个异步请求的技术,本质上它不算创新,是一组技术的组合.它的核心对象是 XMLHttpRequest. 简单回顾下历史 19 ...
- mysql 导出select语句结果到excel文件等
一.导出数据外部 1)mysql连接+将查询结果输出到文件.在命令行中执行(windows的cmd命令行,mac的终端) mysql -hxx -uxx -pxx -e "query sta ...
- vim74安装
1) 常用编译选项 ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp \ --enable-pyt ...
- CML相关
!!:执行上一条命令 !blah:执行最近的以 blah 开头的命令,如 !ls !blah:p:仅打印输出,而不执行 !$:上一条命令的最后一个参数,与 Alt + . 相同 !$:p:打印输出 ! ...
- 《InsideUE4》-9-GamePlay架构(八)Player
你们对力量一无所知 引言 回顾上文,我们谈完了World和Level级别的逻辑操纵控制,如同分离组合的AController一样,UE在World的层次上也采用了一个分离的AGameMode来抽离了游 ...
- 洛谷P2158 [SDOI2008]仪仗队
题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图 ...
- C程序运行计时
在标准的C/C++中最小的时间单位是毫秒ms,下面代码中clock_t是long: 每经过1ms clock()的值就增加1:常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元 ...