Google Map API V3开发(3)
6 Google Maps 事件
每个 Maps API 对象均可导出大量已命名的事件。如果程序想要实现某些事件,则会为这些事件注册 Javascript 事件监听器,并在 google.maps.event 命名空间中注册addListener() 事件处理程序,以便在接收这些事件后执行相应代码。
google.maps.Marker 对象可以监听一些用户事件,例如:
'click'
'dblclick'
'mouseup'
'mousedown'
'mouseover'
'mouseout‘
使用方法:
Var listener = google.maps.event.addListener(marker, ‘click’, function())
google.maps.event.removeListener(listener)
监听 DOM 事件
Google Maps JavaScript API 事件模型会自行创建并管理自定义事件。不过,浏览器内的DOM(文档对象模型)也会根据所使用的特定浏览器事件模型自行创建并分派事件。如果您想要捕获并响应这些事件,可以使用 Maps API 提供的 addDomListener() 静态方法来监听并绑定到这些 DOM 事件。
google.maps.event.addDomListener(window, 'load', initialize);
代替:
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
7 控件
Maps API 带有一部分可在地图中使用的内置控件:
? 缩放控件,显示滑块(针对大地图)或“+/-”小按钮(针对小地图),用于控制地图的缩放等级。在非触摸的设备上,该控件默认显示在地图的左上角,而在触摸设备上则显示在左下角。
? 平移控件,显示用于平移地图的按钮。在非触摸的设备上,该控件默认显示在地图的左上角。您还可以使用平移控件对图像进行 45° 旋转
? 比例控件,用于显示地图比例元素。默认情况下,系统不会启用此控件。
? MapType 控件,可让用户在不同的地图类型(例如 ROADMAP 和 SATELLITE)之间进行切换。该控件默认显示在地图的右上角。
? 街景视图控件包含一个街景小人图标,将该图标拖动到地图上即可启用街景视图。该控件默认显示在地图的左上角。
? 旋转控件包含一个较小的圆形图标,可让您旋转包含斜面图像的地图。该控件默认显示在地图的左上角。
? 总览图控件会显示一个简略的总览图,用于在更广阔区域内反映当前的地图视口。该控件默认以折叠状态显示在地图的右下角。
8 叠加层
叠加层是地图上与纬度/经度坐标绑定的对象,会随您拖动或缩放地图而移动。叠加层表示的是“添加”到地图中以标明点、线、区域或对象集合的对象
Maps API 包含以下几种叠加层:
? 地图上的单个位置是使用标记显示的。标记有时可显示自定义的图标图片,这种情况下标记通常被称为“图标”。标记和图标是 Marker 类型的对象。
? 地图上的线是使用折线(表示一系列按顺序排列的位置)显示的。线是 Polyline 类型的对象。
? 地图上的不规则形状区域是使用多边形(类似于折线)显示的。与折线相同的是,多边形也是由一系列按顺序排列的位置构成的;不同的是,多边形定义的是封闭区域。
? 地图图层可使用叠加层地图类型显示。您可以通过创建自定义地图类型来创建自己的图块集,自定义地图类型可取代基本地图图块集,或作为叠加层显示在现有基本地图图块集之上。
? 信息窗口也是特殊类型的叠加层,用于在指定地图位置上方的弹出式气泡框内显示内容(通常是文字或图片)。
? 您还可以实现自己的自定义叠加层。这些自定义叠加层可实现 OverlayView 接口。
绘图库
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> <script type="text/javascript" src='http://maps.googleapis.com/maps/api/js?v=3&sensor=true&language=hk&libraries=drawing'></script> <script type="text/javascript"> function initialize() { var myOptions = { zoom: 4, center: new google.maps.LatLng(33.174342, 116.147461), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true, scaleControlOptions: { position: google.maps.ControlPosition.LEFT_BOTTOM } } map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); var drawingManager = new google.maps.drawing.DrawingManager({ drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.POLYLINE, google.maps.drawing.OverlayType.RECTANGLE ] }, markerOptions: { icon: 'http://maps.google.com/mapfiles/marker_green.png' }, circleOptions: { fillColor: '#ffff00', fillOpacity: 1, strokeWeight: 5, clickable: false, editable: true, zIndex: 1 } }); drawingManager.setMap(map); //var sPointArray = ''; //google.maps.event.addListener(drawingManager, 'polylinecomplete', function (polyline) { //var latlngArray = (polyline.getPath().getArray()); //for (var i = 0; i < latlngArray.length; i++) { // var point = latlngArray[i]; // if (sPointArray == '') { // sPointArray = parseFloat(Number(point.lat())).toFixed(4) + "," + parseFloat(Number(point.lng())).toFixed(4); //} //四位小数足够了 //else { // sPointArray = sPointArray + ";" + parseFloat(Number(point.lat())).toFixed(4) + "," + parseFloat(Number(point.lng())).toFixed(4); //} // } //alert(sPointArray); //}); } google.maps.event.addDomListener(window, 'load', initialize); </script> <title></title> </head> <body> <div class="container"> <form id="form1" action="" class="form-horizontal" role="form" runat="server"> <div id="map_canvas" style="width: 800px; height: 480px; margin-top:15px;"></div> </form> </body> </div> </html>
Google Map API V3开发(3)的更多相关文章
- Google Map API V3开发(1)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(2)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(4)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(5)
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google Map API V3开发(6) 代码
Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...
- Google map API V3
本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...
- Google Map API V3调用arcgis发布的瓦片地图服务
由于最近项目需要用到CAD制作的地图,但之前一直使用的是用谷歌离线瓦片地图的方式,怎么样把CAD图像地图一样有缩放,移动的功能放到网页显示成了难题, 原先的谷歌地图的代码难道就不能用了?重新写一套代码 ...
- Google 地图 API V3 针对移动设备进行开发
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- 如何使用Google Map API开发Android地图应用
两年前开发过的GoogleMap已经大变样,最近有项目要用到GoogleMap,重新来配置Android GoogleMap开发环境,还真是踩了不少坑. 一.下载Android SDK Manager ...
随机推荐
- 从零自学Hadoop(08):第一个MapReduce
阅读目录 序 数据准备 wordcount Yarn 新建MapReduce 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是 ...
- Eclipse debug断点调试代码时出现source not found问题
偶尔调试代码的时候会出现这种事情,之前并没有特别注意,今天稍微搜集一下相关资料: 1.跳转到的代码的确没有源码,下载源码后选择源码位置后便会正常显示源码. 2.源码和class文件不一致.即便勾选了a ...
- Linux Shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- sudo 命令情景分析
Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本文就对我们常用到 sudo 操作情景进行简单分析,通过一些例子来了解 sudo 命令相关的技巧. 情景一:用 ...
- 在线倍增法求LCA专题
1.cojs 186. [USACO Oct08] 牧场旅行 ★★ 输入文件:pwalk.in 输出文件:pwalk.out 简单对比时间限制:1 s 内存限制:128 MB n个被自 ...
- aop
做aop做一些事情::: package cn.happy.spring04aop; public interface ISomeService { public void doSomeThing() ...
- JS重载
Js 不支持函数的重载,可以用相同的名字在同一作用区域,定义两个函数,而不会引起错误,但真正使用的是最后一个. Js 不会验证传递给函数的参数个数是否和函数定义的参数的个数相同,开发人员定义的函数都可 ...
- jQuery ui 框架
jQuery ui框架很多,除了官方提供的jquery UI(如果你还不知道什么是jQuery UI,请看下载了jquery ui后如何使用),还有很多第三方提供的ui框架,因官方提供的jquery ...
- Mobile Safari调用本地App, 否则进入App Store下载
需求: 如何让用户通过手机浏览器(Mobile Safari),访问一个URL就能直接打开ios上的App应用,如果该应用没有安装,那么直接跳转到App Store的App下载页面. 准备工作 ios ...
- js阿拉伯数字转中文大写
function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = "千百 ...