如何在页面上呈现谷歌地图

来源:互联网 发布:云计算有什么意义 编辑:程序博客网 时间:2024/06/06 06:58


地图数据 ©2017 GS(2011)6020 Google Imagery ©2017 TerraMetrics
使用条款
报告地图错误
地图
卫星图像

着手了解 Google Maps JavaScript API 最简单的方法是查看一个简单示例。以下网页显示的地图以澳大利亚新南威尔士州悉尼为中心:

<!DOCTYPE html><html>  <head>    <title>Simple Map</title>    <meta name="viewport" content="initial-scale=1.0">    <meta charset="utf-8">    <style>      /* Always set the map height explicitly to define the size of the div       * element that contains the map. */      #map {        height: 100%;      }      /* Optional: Makes the sample page fill the window. */      html, body {        height: 100%;        margin: 0;        padding: 0;      }    </style>  </head>  <body>    <div id="map"></div>    <script>      var map;      function initMap() {        map = new google.maps.Map(document.getElementById('map'), {          center: {lat: -34.397, lng: 150.644},          zoom: 8        });      }    </script>    <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"    async defer></script>  </body></html>

即便是在这个简单示例中,仍有几点需要注意:

  1. 我们利用 <!DOCTYPE html> 声明以 HTML5 形式声明应用。
  2. 我们创建了一个名为“map”的 div 元素来存放地图。
  3. 我们定义了一个在 div 中创建地图的 JavaScript 函数。
  4. 我们使用 script 标记加载 Maps JavaScript API。
  5. API KEY申请地址:https://developers.google.com/maps/documentation/javascript/get-api-key

下文对这些步骤做了说明。

以 HTML5 形式声明您的应用

我们建议您在 Web 应用内声明真正的 DOCTYPE。在此处的示例内,我们已使用如下所示的简单 HTML5 DOCTYPE 以 HTML5 形式声明了我们的应用:

<!DOCTYPE html>

大多数最新浏览器都会在“标准模式”下渲染通过此 DOCTYPE 声明的内容,这意味着您的应用应具有更高的跨浏览器兼容性。此外,DOCTYPE 还设计为可以适当方式降级;无法识别它的浏览器会将其忽略,并使用“兼容模式”来显示其内容。

请注意,某些在兼容模式下有效的 CSS 在标准模式下无效。具体地讲,所有基于百分比的尺寸必须从父块元素继承,并且如果任一父项未能指定尺寸,则假定其尺寸为 0 x 0 像素。因此,我们加入了以下 <style> 声明:

<style>  #map {    height: 100%;  }  html, body {    height: 100%;    margin: 0;    padding: 0;  }</style>

此 CSS 声明表示地图容器 <div>(具有 map ID)应占据 100% 的 HTML 正文高度。请注意,我们同样必须为 <body> 和 <html> 明确声明这些百分比。

加载 Google Maps JavaScript API

要加载 Google Maps JavaScript API,请使用类似于下列示例中的 script 标记:

    <script async defer      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">    </script>

script 标记中包含的网址是一个 JavaScript 文件的位置,该文件用于加载使用 Maps JavaScript API 所需的所有符号和定义。此 script 标记为必需。

async 属性允许浏览器在 Maps JavaScript API 加载的同时渲染网站的其余内容。当 API 就绪时,它将调用使用 callback 参数指定的函数。

key 参数包含应用的 API 密钥。如需了解详细信息,请参阅获取密钥。

注:Google Maps APIs Premium Plan客户可以在加载 API 时使用 API 密钥或有效的客户端 ID。获取有关 Premium Plan 客户身份验证参数的更多信息。

HTTPS 或 HTTP

我们认为 Web 安全性相当重要,因此建议尽可能使用 HTTPS。作为提高网络安全性工作的一部分,我们已实现所有 Maps JavaScript API 都通过 HTTPS 提供。使用 HTTPS 加密可提高您的网站的安全性及其抵御窥探或篡改的能力。

我们建议使用上文提供的 <script> 标记通过 HTTPS 加载 Maps JavaScript API。

必要时,您可以通过请求 http://maps.googleapis.com/(对于中国用户,则是 http://maps.google.cn)通过 HTTP 加载 Maps JavaScript API。

通过网址加载 Maps JavaScript API 时,作为可选步骤,您可以利用 libraries 网址参数加载更多内容库。内容库是一些代码模块,可为主 Maps JavaScript API 提供附加功能,但只在您明确请求时加载。如需了解详细信息,请参阅 Maps JavaScript API 中的内容库。

同步加载 API

在加载 Maps JavaScript API 的 script 标记中,可以省略 async 属性和 callback 参数。这会冻结 API 的加载,在 API 下载完成时再继续执行。

这样做很可能会减缓页面加载速度,但意味着您可以在编写后续脚本标记时假定 API 已经加载。

地图 DOM 元素

<div id="map"></div>

要想在网页上显示地图,我们必须为其预留一个位置。我们通常的实现方式是:创建一个命名的 div 元素,然后在浏览器的文档对象模型 (DOM) 中获取对该元素的引用。

在上例中,我们利用 CSS 将地图 div 的高度设置为“100%”。这会扩展 div,使其适应移动设备的尺寸。您可能需要根据浏览器的屏幕尺寸和内边距调整宽度值和高度值。请注意,div 通常从其包含元素获取宽度值,空 div 的高度通常为 0。因此,您必须始终显式地在 <div> 上设置高度。

地图选项

每个地图都有两个必需选项:center 和 zoom

map = new google.maps.Map(document.getElementById('map'), {  center: {lat: -34.397, lng: 150.644},  zoom: 8});

显示地图时使用的初始分辨率由 zoom 属性设置,缩放比例 0 表示最大缩小比例下的地球地图,更大缩放比例会以更高分辨率放大地图。将缩放比例指定为整数。

zoom: 8

以单幅图像形式提供整个地球的地图需要巨幅尺寸的地图,或者分辨率很低的小地图。因此,Google 地图和 Maps JavaScript API 内的地图图像才会被分解成地图“图块”和“缩放比例”。缩放比例较低时,一小组地图图块便可覆盖大片区域;缩放比例较高时,图块分辨率较高,只能覆盖较小区域。下面的列表显示了您在每个缩放比例下会看到的大致细节级别:

  • 1:世界
  • 5:大陆/洲
  • 10:城市
  • 15:街道
  • 20:建筑物

以下三幅图像反映的是东京同一位置在 0、7 和 18 缩放比例下的情况。

  

如需了解有关 Maps JavaScript API 如何根据当前缩放比例加载图块的信息,请参阅“地图类型”文档中的图块坐标。

地图对象

map = new google.maps.Map(document.getElementById("map"), {...});

表示地图的 JavaScript 类是 Map 类。该类的对象定义页面上的单个地图。(您可以创建该类的多个实例–每个对象都将定义页面上的一个不同地图。)我们利用 JavaScript new 运算符来新建该类的实例。

当您新建地图实例时,您需要在页面中以地图容器形式指定一个 <div> HTML 元素。HTML 节点是 JavaScript document 对象的子项,我们通过 document.getElementById() 方法获取对该元素的引用。

此代码定义一个变量(名为 map)并将该变量赋值给一个新的 Map 对象。函数 Map() 称为构造函数,其定义如下所示:

构造函数说明Map(mapDiv:Node,opts?:MapOptions )利用传递的任何(可选)参数在给定 HTML 容器(通常是一个 DIV 元素)内新建一个地图。

故障排除

sensor 参数不再是必填项。

如果您的代码不能正常工作:

  • 寻找打字错误。切记 JavaScript 是一种区分大小写的语言。
    • 确认您已在地图选项中指定了 zoom 属性和 center 属性。
    • 确保您已声明用于容纳出现在屏幕上的地图的 div 元素。
    • 确保地图的 div 元素具有高度。默认情况下,创建的 div 元素高度为 0,因此不可见。检查基础环节–一些最常见的问题发生在地图创建的初始阶段。
  • 利用 JavaScript 调试器(如 Chrome Developer Tools 中提供的调试器)来帮助发现问题。首先查看 JavaScript 控制台中有无错误。
地图数据 ©2017 GS(2011)6020 Google Imagery ©2017 TerraMetrics
使用条款
报告地图错误
地图
卫星图像

着手了解 Google Maps JavaScript API 最简单的方法是查看一个简单示例。以下网页显示的地图以澳大利亚新南威尔士州悉尼为中心:

<!DOCTYPE html><html>  <head>    <title>Simple Map</title>    <meta name="viewport" content="initial-scale=1.0">    <meta charset="utf-8">    <style>      /* Always set the map height explicitly to define the size of the div       * element that contains the map. */      #map {        height: 100%;      }      /* Optional: Makes the sample page fill the window. */      html, body {        height: 100%;        margin: 0;        padding: 0;      }    </style>  </head>  <body>    <div id="map"></div>    <script>      var map;      function initMap() {        map = new google.maps.Map(document.getElementById('map'), {          center: {lat: -34.397, lng: 150.644},          zoom: 8        });      }    </script>    <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"    async defer></script>  </body></html>

即便是在这个简单示例中,仍有几点需要注意:

  1. 我们利用 <!DOCTYPE html> 声明以 HTML5 形式声明应用。
  2. 我们创建了一个名为“map”的 div 元素来存放地图。
  3. 我们定义了一个在 div 中创建地图的 JavaScript 函数。
  4. 我们使用 script 标记加载 Maps JavaScript API。
  5. API KEY申请地址:https://developers.google.com/maps/documentation/javascript/get-api-key

下文对这些步骤做了说明。

以 HTML5 形式声明您的应用

我们建议您在 Web 应用内声明真正的 DOCTYPE。在此处的示例内,我们已使用如下所示的简单 HTML5 DOCTYPE 以 HTML5 形式声明了我们的应用:

<!DOCTYPE html>

大多数最新浏览器都会在“标准模式”下渲染通过此 DOCTYPE 声明的内容,这意味着您的应用应具有更高的跨浏览器兼容性。此外,DOCTYPE 还设计为可以适当方式降级;无法识别它的浏览器会将其忽略,并使用“兼容模式”来显示其内容。

请注意,某些在兼容模式下有效的 CSS 在标准模式下无效。具体地讲,所有基于百分比的尺寸必须从父块元素继承,并且如果任一父项未能指定尺寸,则假定其尺寸为 0 x 0 像素。因此,我们加入了以下 <style> 声明:

<style>  #map {    height: 100%;  }  html, body {    height: 100%;    margin: 0;    padding: 0;  }</style>

此 CSS 声明表示地图容器 <div>(具有 map ID)应占据 100% 的 HTML 正文高度。请注意,我们同样必须为 <body> 和 <html> 明确声明这些百分比。

加载 Google Maps JavaScript API

要加载 Google Maps JavaScript API,请使用类似于下列示例中的 script 标记:

    <script async defer      src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">    </script>

script 标记中包含的网址是一个 JavaScript 文件的位置,该文件用于加载使用 Maps JavaScript API 所需的所有符号和定义。此 script 标记为必需。

async 属性允许浏览器在 Maps JavaScript API 加载的同时渲染网站的其余内容。当 API 就绪时,它将调用使用 callback 参数指定的函数。

key 参数包含应用的 API 密钥。如需了解详细信息,请参阅获取密钥。

注:Google Maps APIs Premium Plan客户可以在加载 API 时使用 API 密钥或有效的客户端 ID。获取有关 Premium Plan 客户身份验证参数的更多信息。

HTTPS 或 HTTP

我们认为 Web 安全性相当重要,因此建议尽可能使用 HTTPS。作为提高网络安全性工作的一部分,我们已实现所有 Maps JavaScript API 都通过 HTTPS 提供。使用 HTTPS 加密可提高您的网站的安全性及其抵御窥探或篡改的能力。

我们建议使用上文提供的 <script> 标记通过 HTTPS 加载 Maps JavaScript API。

必要时,您可以通过请求 http://maps.googleapis.com/(对于中国用户,则是 http://maps.google.cn)通过 HTTP 加载 Maps JavaScript API。

通过网址加载 Maps JavaScript API 时,作为可选步骤,您可以利用 libraries 网址参数加载更多内容库。内容库是一些代码模块,可为主 Maps JavaScript API 提供附加功能,但只在您明确请求时加载。如需了解详细信息,请参阅 Maps JavaScript API 中的内容库。

同步加载 API

在加载 Maps JavaScript API 的 script 标记中,可以省略 async 属性和 callback 参数。这会冻结 API 的加载,在 API 下载完成时再继续执行。

这样做很可能会减缓页面加载速度,但意味着您可以在编写后续脚本标记时假定 API 已经加载。

地图 DOM 元素

<div id="map"></div>

要想在网页上显示地图,我们必须为其预留一个位置。我们通常的实现方式是:创建一个命名的 div 元素,然后在浏览器的文档对象模型 (DOM) 中获取对该元素的引用。

在上例中,我们利用 CSS 将地图 div 的高度设置为“100%”。这会扩展 div,使其适应移动设备的尺寸。您可能需要根据浏览器的屏幕尺寸和内边距调整宽度值和高度值。请注意,div 通常从其包含元素获取宽度值,空 div 的高度通常为 0。因此,您必须始终显式地在 <div> 上设置高度。

地图选项

每个地图都有两个必需选项:center 和 zoom

map = new google.maps.Map(document.getElementById('map'), {  center: {lat: -34.397, lng: 150.644},  zoom: 8});

显示地图时使用的初始分辨率由 zoom 属性设置,缩放比例 0 表示最大缩小比例下的地球地图,更大缩放比例会以更高分辨率放大地图。将缩放比例指定为整数。

zoom: 8

以单幅图像形式提供整个地球的地图需要巨幅尺寸的地图,或者分辨率很低的小地图。因此,Google 地图和 Maps JavaScript API 内的地图图像才会被分解成地图“图块”和“缩放比例”。缩放比例较低时,一小组地图图块便可覆盖大片区域;缩放比例较高时,图块分辨率较高,只能覆盖较小区域。下面的列表显示了您在每个缩放比例下会看到的大致细节级别:

  • 1:世界
  • 5:大陆/洲
  • 10:城市
  • 15:街道
  • 20:建筑物

以下三幅图像反映的是东京同一位置在 0、7 和 18 缩放比例下的情况。

  

如需了解有关 Maps JavaScript API 如何根据当前缩放比例加载图块的信息,请参阅“地图类型”文档中的图块坐标。

地图对象

map = new google.maps.Map(document.getElementById("map"), {...});

表示地图的 JavaScript 类是 Map 类。该类的对象定义页面上的单个地图。(您可以创建该类的多个实例–每个对象都将定义页面上的一个不同地图。)我们利用 JavaScript new 运算符来新建该类的实例。

当您新建地图实例时,您需要在页面中以地图容器形式指定一个 <div> HTML 元素。HTML 节点是 JavaScript document 对象的子项,我们通过 document.getElementById() 方法获取对该元素的引用。

此代码定义一个变量(名为 map)并将该变量赋值给一个新的 Map 对象。函数 Map() 称为构造函数,其定义如下所示:

构造函数说明Map(mapDiv:Node,opts?:MapOptions )利用传递的任何(可选)参数在给定 HTML 容器(通常是一个 DIV 元素)内新建一个地图。

故障排除

sensor 参数不再是必填项。

如果您的代码不能正常工作:

  • 寻找打字错误。切记 JavaScript 是一种区分大小写的语言。
    • 确认您已在地图选项中指定了 zoom 属性和 center 属性。
    • 确保您已声明用于容纳出现在屏幕上的地图的 div 元素。
    • 确保地图的 div 元素具有高度。默认情况下,创建的 div 元素高度为 0,因此不可见。检查基础环节–一些最常见的问题发生在地图创建的初始阶段。
  • 利用 JavaScript 调试器(如 Chrome Developer Tools 中提供的调试器)来帮助发现问题。首先查看 JavaScript 控制台中有无错误。
原创粉丝点击