Google 地图 API V3 针对移动设备进行开发

时间:2023-08-28 12:35:20

Google官方教程:

Google 地图 API V3 使用入门

Google 地图 API V3 针对移动设备进行开发

Google 地图 API V3 之事件

Google 地图 API V3 之控件

Google 地图 API V3 之 叠加层

Google Maps API V3 之绘图库 信息窗口

Google Maps API V3 之 图层

Google Maps API V3 之 路线服务

针对移动设备进行开发

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 应用,可将 &region=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)选择使用最新的实验版本,直到您需要添加较新版本中所提供的其他地图项时再改用该新版本。这样,您使用的版本会随着应用的开发而日趋成熟,并会在一段时间后变为发行版本,最终成为冻结版本。
      • 请求当前冻结版本或较早版本的生产应用应在每季度对最新的发行版本进行测试,以便在该版本冻结前识别有关向后兼容性方面的任何问题。

      版本文档

      文档将始终反映实验版本。不过,我们会针对每个版本提供一份单独进行维护的参考。

      问题排查

      如果您的代码不起作用,可以参考以下一些方法来解决您遇到的问题:

      Last updated 二月 1, 2013.