Google地图接口API之地图基础(二)

本文详细介绍了如何获取Google地图APIKey,并通过HTML和JavaScript创建一个基本的Google地图展示伦敦。包括APIKey的添加、地图属性的定义、地图显示位置、地图对象创建与加载等关键步骤。

拥有一个免费的API Key之后就可以正式调用Google的API了进行开发了。

创建一个简单的 Google 地图,以下是显示了英国伦敦的 Google 地图:

<html>
<head> <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false"> </script> <script> function initialize() { var mapProp = { center:new google.maps.LatLng(51.508742,-0.120850), zoom:5, mapTypeId:google.maps.MapTypeId.ROADMAP }; var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); } google.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="googleMap" style="width:500px;height:380px;"></div> </body> </html> 

效果如如下:(可以拷贝直接运行,当然你要能够访问Google)

现在对针对上面的例子进行分析如下:

(1) 添加 Google 地图 API Key

在上面实例中第一个<script> 标签中必须包含 Google 地图 API:

<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>

调用类型是下面的方式,包含两个参数:

<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>

将google生成的 API key 放置于 key 参数中(key=YOUR_API_KEY)

The sensor 参数是必须的,该参数用于指明应用程序是否使用一个传感器 (类似 GPS 导航) 来定位用户的位置。参数值可以设置为 true 或者 false。

HTTPS:

如果你的应用是安全的HTTP(HTTPS:HTTP Secure)应用,你可以使用 HTTPS 来加载 Google 地图 API:

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>

异步加载:

同样我们也可以在页面完全载入后再加载 Google 地图 API。

以 下实例使用了 window.onload 来实现页面完全载入后加载 Google 地图 。 loadScript() 函数创建了加载 Google 地图 API <script> 标签。此外在标签的末尾添加了 callback=initialize 参数, initialize()作为回调函数会在API完全载入后执行:

function loadScript()
{
var script = document.createElement("script");
script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false&callback=initialize"; document.body.appendChild(script);
}
window.onload = loadScript; 

(2) 定义地图属性

在初始化地图前,我们需要先创建一个 Map 属性对象来定义一些地图的属性:

var mapProp = {
  center:new google.maps.LatLng(51.508742,-0.120850),
  zoom:7,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

enter(中心点)

中心属性指定了地图的中心,该中心通过坐标(纬度,经度)在地图上创建一个中心点。

Zoom(缩放级数)

zoom 属性指定了地图的 缩放级数。zoom: 0 显示了整个地球地图的完全缩放。

MapTypeId(地图的初始类型)

mapTypeId 属性指定了地图的初始类型。

mapTypeId包括如下四种类型:

  • google.maps.MapTypeId.HYBRID:显示卫星图像的主要街道透明层
  • google.maps.MapTypeId.ROADMAP:显示普通的街道地图
  • google.maps.MapTypeId.SATELLITE:显示卫星图像
  • google.maps.MapTypeId.TERRAIN:显示带有自然特征(如地形和植被)的地图

(3) 在哪里显示 Google 地图

通常 Google 地图使用于 <div> 元素中:

<div id="googleMap" style="width:500px;height:380px;"></div>

注意: 地图将以div中设置的大小来显示地图的大小,所以我们可以在 <div> 元素中设置地图的大小。

(4) 创建一个 Map 对象

var map=new google.maps.Map(document.getElementById("googleMap")
,mapProp);

以上代码使用参数(mapProp)在<div> 元素 (id为googleMap) 创建了一个新的地图。

提示:如果想在页面中创建多个地图,你只需要添加新的地图对象即可。

以下实例定义了四个地图实例 (四个地图使用了不同的地图类型):

var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var map2 = new google.maps.Map(document.getElementById("googleMap2"),mapProp2); var map3 = new google.maps.Map(document.getElementById("googleMap3"),mapProp3); var map4 = new google.maps.Map(document.getElementById("googleMap4"),mapProp4); 

(5) 加载地图

窗口载入后通过执行 initialize() 函数来初始化 Map 对象,这样可以确保在页面完全载入后再加载 Google 地图:

google.maps.event.addDomListener(window, 'load', initialize);

附上地图Map() 构造器的使用方法及API:

例如要创建一个 Google 地图:

var map=new google.maps.Map(document.getElementById("googleMap"),mapOpt);

定义和用法

Map() 构造器创建了一个新的地图并插入到指定的HTML元素中(<div> 元素)。


语法

new google.maps.Map( HTMLElement, MapOptions)

参数值

参数描述
HTMLElement规定要把地图放置在那个 HTML 元素中。
MapOptions带有地图初始化变量/选项的 MapOptions 对象。

Map() 的方法

方法返回值描述
fitBounds(LatLngBounds)None设置要包含给定边界的视口。
getBounds()LatLng,LatLng 返回当前视口的西南纬度/经度和东北纬度/经度。
getCenter()LatLng返回地图的中心的纬度/经度。
getDiv()Node返回包含地图的 DOM 对象。
getHeading()number返回航拍图像的罗盘航向(支持 SATELLITE 和 HYBRID 地图类型)。
getMapTypeId()HYBRID ROADMAP SATELLITE TERRAIN返回当前地图类型。
getProjection()Projection返回当前 Projection(投影)。
getStreetView()StreetViewPanorama返回绑定到地图的默认的 StreetViewPanorama。
getTilt()number返回航拍图像的入射角度数(支持 SATELLITE 和 HYBRID 地图类型)。
getZoom()number返回地图的当前缩放级别。
panBy(xnumber,ynumber)None通过以像素计的给定距离改变地图的中心。
panTo(LatLng)None改变地图的中心为给定的 LatLng。
panToBounds(LatLngBounds)None将地图平移所需的最小距离以包含给定的 LatLngBounds。
setCenter(LatLng)None 
setHeading(number)None设置航拍图像的罗盘方向(以度为单位进行测量),基本方向为北方。
setMapTypeId(MapTypeId)None改变要显示的地图类型。
setOptions(MapOptions)None 
setStreetView(StreetViewPanorama)None绑定一个 StreetViewPanorama 到地图上。
setTilt(number)None设置航拍图像的入射角度数(支持 SATELLITE 和 HYBRID 地图类型)。
setZoom(number)None 

Map() 的属性

属性类型描述
controlsArray.<MVCArray.<Node>>要附加到地图上的额外控件。
mapTypesMapTypeRegistry按字符串 ID 划分的 MapType 实例的注册表。
overlayMapTypesMVCArray.<MapType>要叠加的额外地图类型。

Map() 的事件

事件参数描述
bounds_changedNone当可视区域范围更改时会触发此事件。
center_changedNone当地图 center(中心)属性更改时会触发此事件。
clickMouseEvent当用户点击地图(但不是点击标记或信息窗口)时会触发此事件。
dblclickMouseEvent当用户双击地图时会触发此事件。请注意,触发此事件前还会触发点击事件。
dragNone当用户拖动地图时会反复触发此事件。
dragendNone当用户停止拖动地图时会触发此事件。
dragstartNone当用户开始拖动地图时会触发此事件。
heading_changedNone当地图 heading(方向)属性更改时会触发此事件。
idleNone当地图在平移或缩放之后变为闲置状态时会触发此事件。
maptypeid_changedNone当 mapTypeId 属性更改时会触发此事件。
mousemoveMouseEvent只要用户的鼠标在地图容器上移动,就会触发此事件。
mouseoutMouseEvent当用户的鼠标从地图容器上退出时会触发此事件。
mouseoverMouseEvent当用户的鼠标进入地图容器时会触发此事件。
projection_changedNone当投影更改时会触发此事件。
resizeNone当地图(div)更改尺寸时会触发此事件。
rightclickMouseEvent当用户右击地图时会触发此事件。
tilesloadedNone当可见图块载入完成后会触发此事件。
tilt_changedNone当地图 tilt(倾斜)属性更改时会触发此事件。
zoom_changedNone当地图 zoom(缩放)属性更改时会触发此事件。

转载于:https://www.cnblogs.com/longshiyVip/p/4604671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值