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 ...
随机推荐
- Tomcat中更改网站根目录
Tomcat的默认目录是指向webapps下的root目录,输入http://localhost:8080,会打开root目录下的页面.我想让localhost指向我自己的目录.比如webapps/m ...
- beautifulSoup(1)
import re from bs4 import BeautifulSoupdoc = ['<html><head><title>Page title</t ...
- Java程序性能优化——让你的java程序更快、更稳定
1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...
- .NET 类型(Types)的那些事
引言 您是.Net工程师?那 .NetFramework中的类型您知道有三大类吗?(除了引用类型和值类型,还有?) 引用类型一定在“堆”上,值类型一定在“栈”上? 那引用类型在内存中的布局细节您又知道 ...
- TCP/IP四层模型和OSI七层模型
TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对 ...
- Java集合框架之map
Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...
- 《python核心编》程课后习题——第三章
核心编程课后习题——第三章 3-1 由于Python是动态的,解释性的语言,对象的类型和内存都是运行时确定的,所以无需再使用之前对变量名和变量类型进行申明 3-2原因同上,Python的类型检查是在运 ...
- MFC---static控件加载图片
IPicture* ppic = NULL; HRESULT hr; hr = OleLoadPicturePath((CComBSTR)picpath.GetBuffer(),(LPUNKNOWN) ...
- IO(七)----转换流
输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥梁. 输出字节流的转换流:OutputStreamWriter 可以把输出字节流转换成输出字符流 . 是符流通向字节流 ...
- 【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东 ...