Google 地图事件实例讲解


Posted in Javascript onAugust 06, 2016

Google 地图事件

点击标记缩放地图

我们仍然使用上一遍文章使用的英国伦敦的地图。

点用户点击标记时实现缩放地图的功能(点击标记时绑定地图缩放事件)。

代码如下:

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

<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);

function initialize()
{
var mapProp = {
 center: myCenter,
 zoom:5,
 mapTypeId: google.maps.MapTypeId.ROADMAP
 };

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

var marker = new google.maps.Marker({
 position: myCenter,
 title:'Click to zoom'
 });

marker.setMap(map);

// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,'click',function() {
 map.setZoom(9);
 map.setCenter(marker.getPosition());
 });
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

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

</body>
</html>

使用 addListener() 事件处理程序来注册事件的监听。该方法使用一个对象,一个事件来监听,当指定的事件发生时 函数将被调用。

重置标记

我们通过给地图添加事件处理程序来改变 'center' 属性,以下代码使用 center_changed 事件在3秒后标记移会中心点:

实例

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

<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);

function initialize()
{
var mapProp = {
 center: myCenter,
 zoom:5,
 mapTypeId: google.maps.MapTypeId.ROADMAP
 };

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

var marker = new google.maps.Marker({
 position: myCenter,
 title:'Click to zoom'
 });

marker.setMap(map);

// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,'click',function() {
 map.setZoom(9);
 map.setCenter(marker.getPosition());
 });
   
google.maps.event.addListener(map,'center_changed',function() {
// 3 seconds after the center of the map has changed, pan back to the marker
 window.setTimeout(function() {
  map.panTo(marker.getPosition());
 },3000);
 });
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

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

</body>
</html>

点击标记时打开信息窗口。

点击标记在信息窗口显示一些文本信息:

实例

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

<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850);

function initialize()
{
var mapProp = {
 center:myCenter,
 zoom:5,
 mapTypeId:google.maps.MapTypeId.ROADMAP
 };

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

var marker=new google.maps.Marker({
 position:myCenter,
 });

marker.setMap(map);

var infowindow = new google.maps.InfoWindow({
 content:"Hello World!"
 });

google.maps.event.addListener(marker, 'click', function() {
 infowindow.open(map,marker);
 });
}

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

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

设置标记及打开每个标记的信息窗口

当用户点击地图时执行一个窗口

用户点击地图某个位置时使用 placeMarker() 函数在指定位置上放置一个标记,并弹出信息窗口:

实例

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

<script>
var map;
var myCenter=new google.maps.LatLng(51.508742,-0.120850);

function initialize()
{
var mapProp = {
 center:myCenter,
 zoom:5,
 mapTypeId:google.maps.MapTypeId.ROADMAP
 };

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

 google.maps.event.addListener(map, 'click', function(event) {
  placeMarker(event.latLng);
 });
}

function placeMarker(location) {
 var marker = new google.maps.Marker({
  position: location,
  map: map,
 });
 var infowindow = new google.maps.InfoWindow({
  content: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng()
 });
 infowindow.open(map,marker);
}

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

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

</body>
</html>

以上就是对Google 地图事件的基础知识整理,后续继续补充相关知识,谢谢大家对本站的支持!

Javascript 相关文章推荐
JS解密入门 最终变量劫持
Jun 25 Javascript
Jquery ui css framework
Jun 28 Javascript
jQuery 源码分析笔记(5) jQuery.support
Jun 19 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
探讨js中的双感叹号判断
Nov 11 Javascript
JS中实现replaceAll的方法(实例代码)
Nov 12 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
详解vue 数据传递的方法
Apr 19 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
Jun 11 Javascript
Google 地图叠加层实例讲解
Aug 06 #Javascript
Google Maps基础及实例解析
Aug 06 #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
You might like
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
个人收入证明范本
2014/01/12 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
大学生毕业个人总结
2015/02/15 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
居住证明范文
2015/06/17 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫