Google Maps基础及实例解析


Posted in Javascript onAugust 06, 2016

Google Maps 基础

创建一个简单的 Google 地图

现在让我们创建一个简单的 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

Google Maps基础及实例解析

实例解析

我们以以上实例来解析 Google 地图的创建过程。

应用为什么要声明 HTML5?

<!DOCTYPE html>

大多数浏览器使用 "标准模式" 的 HTML5 文档渲染页面,这就意味着你的应用是兼容各大浏览器的。

另外,如果没有DOCTYPE标签,浏览器则使用混杂模式 (quirks mode)进行渲染页面内容。

提示: 应该注意的是一些"混杂模式 "中的CSS并不能使用与标准模式中。在具体的应用中,所有基于百分比的大小都必须从父块元素继承 。如果在父模块中没有指定大小,默认值为 0 x 0 像素。如果你想使用百分比,可以在<style> 标签中声明,如下所示:

<style type="text/css">
html {height:100%}
body {height:100%;margin:0;padding:0}
#googleMap {height:100%}
</style>

这个样式声明表明地图模块的(GoogleMap)应 HTML高度为100%。

添加 Google 地图 API Key

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

<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完全载入后执行:

实例

<!DOCTYPE html>
<html>
<head>
<script>
function initialize()
{
 var mapProp = {
 center: new google.maps.LatLng(51.508742,-0.120850),
 zoom:7,
 mapTypeId: google.maps.MapTypeId.ROADMAP
 };
 var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}

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

window.onload = loadScript;
</script>
</head>

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

</body>
</html>

定义地图属性

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

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

center(中心点)

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

Zoom(缩放级数)

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

MapTypeId(地图的初始类型)

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

mapTypeId包括如下四种类型:

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

在哪里显示 Google 地图

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

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

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

创建一个 Map 对象

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

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

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

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

实例

<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:9,
 mapTypeId: google.maps.MapTypeId.ROADMAP
 };
 var mapProp2 = {
 center: new google.maps.LatLng(51.508742,-0.120850),
 zoom:9,
 mapTypeId: google.maps.MapTypeId.SATELLITE
 };
 var mapProp3 = {
 center: new google.maps.LatLng(51.508742,-0.120850),
 zoom:9,
 mapTypeId: google.maps.MapTypeId.HYBRID
 };
 var mapProp4 = {
 center: new google.maps.LatLng(51.508742,-0.120850),
 zoom:9,
 mapTypeId: google.maps.MapTypeId.TERRAIN
 };
 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);
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<div id="googleMap" style="width:400px;height:300px;"></div>
<br>
<div id="googleMap2" style="width:400px;height:300px;"></div>
<br>
<div id="googleMap3" style="width:400px;height:300px;"></div>
<br>
<div id="googleMap4" style="width:400px;height:300px;"></div>

</body>
</html>

加载地图

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

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

以上就是对Google 地图基础资料的整理,后续继续补充,谢谢大家对本站的支持!

Javascript 相关文章推荐
iframe子页面获取父页面元素的方法
Nov 05 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
vue2.0 路由不显示router-view的解决方法
Mar 06 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
angula中使用iframe点击后不执行变更检测的问题
May 10 Javascript
Vue切换div显示隐藏,多选,单选代码解析
Jul 14 Javascript
如何在Vue.JS中使用图标组件
Aug 04 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 #Javascript
JS触发服务器控件的单击事件(详解)
Aug 06 #Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
Aug 06 #Javascript
Google 地图获取API Key详细教程
Aug 06 #Javascript
关于动态生成dom绑定事件失效的原因及解决方法
Aug 06 #Javascript
深入理解JS DOM事件机制
Aug 06 #Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
Aug 06 #Javascript
You might like
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
python脚本实现验证码识别
2018/06/07 Python
对Python 内建函数和保留字详解
2018/10/15 Python
tensorflow 模型权重导出实例
2020/01/24 Python
HTML5标签大全
2016/11/23 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
程序员跳槽必看面试题总结
2013/06/28 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
成人大专生实习期的自我评价
2013/10/02 职场文书
保密工作责任书
2014/04/16 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
教师党员承诺书2015
2015/01/21 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python