博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google地图接口API之地图基础(二)
阅读量:4346 次
发布时间:2019-06-07

本文共 4343 字,大约阅读时间需要 14 分钟。

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

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

     

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

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

(1) 添加 Google 地图 API Key

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

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

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

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

HTTPS:

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

异步加载:

同样我们也可以在页面完全载入后再加载 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中设置的大小来显示地图的大小,所以我们可以在 <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 对象。

Map() 的方法

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

Map() 的属性

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

Map() 的事件

事件 参数 描述
bounds_changed None 当可视区域范围更改时会触发此事件。
center_changed None 当地图 center(中心)属性更改时会触发此事件。
click MouseEvent 当用户点击地图(但不是点击标记或信息窗口)时会触发此事件。
dblclick MouseEvent 当用户双击地图时会触发此事件。请注意,触发此事件前还会触发点击事件。
drag None 当用户拖动地图时会反复触发此事件。
dragend None 当用户停止拖动地图时会触发此事件。
dragstart None 当用户开始拖动地图时会触发此事件。
heading_changed None 当地图 heading(方向)属性更改时会触发此事件。
idle None 当地图在平移或缩放之后变为闲置状态时会触发此事件。
maptypeid_changed None 当 mapTypeId 属性更改时会触发此事件。
mousemove MouseEvent 只要用户的鼠标在地图容器上移动,就会触发此事件。
mouseout MouseEvent 当用户的鼠标从地图容器上退出时会触发此事件。
mouseover MouseEvent 当用户的鼠标进入地图容器时会触发此事件。
projection_changed None 当投影更改时会触发此事件。
resize None 当地图(div)更改尺寸时会触发此事件。
rightclick MouseEvent 当用户右击地图时会触发此事件。
tilesloaded None 当可见图块载入完成后会触发此事件。
tilt_changed None 当地图 tilt(倾斜)属性更改时会触发此事件。
zoom_changed None 当地图 zoom(缩放)属性更改时会触发此事件。

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

你可能感兴趣的文章
ZOJ 3185 List Operations
查看>>
计算几何经典操作
查看>>
实现页面跳转
查看>>
Java复习-抽象方法和抽象类
查看>>
C#-DataSet和DataTable详解
查看>>
iOS 图片转成base64编码
查看>>
7-2 求最大值及其下标 (20 分)
查看>>
Java归去来第3集:Eclipse中给动态模块升级
查看>>
Android -- ListView与Adapter
查看>>
《House of Cards》观后感
查看>>
1005 Spell It Right (20 分)
查看>>
编辑完这一条数据如何继续转入下一条数据(快速编辑)
查看>>
mysql编译安装
查看>>
[转]Python中的getattr()函数详解
查看>>
execvp php-fpm reload使用的函数
查看>>
SpringBoot系列: 使用 Swagger 生成 API 文档
查看>>
Quadro P5200 - 最强大的移动工作站显卡 专门为了惠普 VR Z 背包电脑而发布
查看>>
离散事件模拟-银行管理
查看>>
学习笔记5
查看>>
Linux的五个查找命令
查看>>