Google Map API V3开发(1)

Google Map API V3开发(2)

Google Map API V3开发(3)

Google Map API V3开发(4)

Google Map API V3开发(5)

Google Map API V3开发(6) 代码

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>

控件

Maps API 带有一部分可在地图中使用的内置控件:

?    缩放控件,显示滑块(针对大地图)或“+/-”小按钮(针对小地图),用于控制地图的缩放等级。在非触摸的设备上,该控件默认显示在地图的左上角,而在触摸设备上则显示在左下角。

?    平移控件,显示用于平移地图的按钮。在非触摸的设备上,该控件默认显示在地图的左上角。您还可以使用平移控件对图像进行 45° 旋转

?    比例控件,用于显示地图比例元素。默认情况下,系统不会启用此控件。

?    MapType 控件,可让用户在不同的地图类型(例如 ROADMAP 和 SATELLITE)之间进行切换。该控件默认显示在地图的右上角。

?    街景视图控件包含一个街景小人图标,将该图标拖动到地图上即可启用街景视图。该控件默认显示在地图的左上角。

?    旋转控件包含一个较小的圆形图标,可让您旋转包含斜面图像的地图。该控件默认显示在地图的左上角。

?    总览图控件会显示一个简略的总览图,用于在更广阔区域内反映当前的地图视口。该控件默认以折叠状态显示在地图的右下角。

叠加层

叠加层是地图上与纬度/经度坐标绑定的对象,会随您拖动或缩放地图而移动。叠加层表示的是“添加”到地图中以标明点、线、区域或对象集合的对象

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)的更多相关文章

  1. 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 ...

  2. 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 ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. Google map API V3

    本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...

  7. Google Map API V3调用arcgis发布的瓦片地图服务

    由于最近项目需要用到CAD制作的地图,但之前一直使用的是用谷歌离线瓦片地图的方式,怎么样把CAD图像地图一样有缩放,移动的功能放到网页显示成了难题, 原先的谷歌地图的代码难道就不能用了?重新写一套代码 ...

  8. Google 地图 API V3 针对移动设备进行开发

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  9. 如何使用Google Map API开发Android地图应用

    两年前开发过的GoogleMap已经大变样,最近有项目要用到GoogleMap,重新来配置Android GoogleMap开发环境,还真是踩了不少坑. 一.下载Android SDK Manager ...

随机推荐

  1. MongoDB学习笔记~ObjectId主键的设计

    回到目录 说一些关于ObjectId的事 MongoDB确实是最像关系型数据库的NoSQL,这在它主键设计上可以体现的出来,它并没有采用自动增长主键,因为在分布式服务器之间做数据同步很麻烦,而是采用了 ...

  2. 一则因为numa引发的mysqldump hang住

    新买的dell r430服务器,双CPU,64G内存,单CPU32g,swap 3G 出现故障现像:mysqldump时会hang住,innodb_buffer_pool_size        = ...

  3. Windows Server 2012 虚拟化实战:域

    在Windows Server系统中,一些服务必需要构建在域的环境中,这不仅是为了统一验证和资源共享,同时也是为了网络安全.为构建虚拟化测试,我们需要先搭建域环境.之前先来大概了解一下域. 在使用工作 ...

  4. android intent 传递list或者对象

    (转:http://www.cnblogs.com/lee0oo0/archive/2012/09/24/2699805.html) 方法一: 如果单纯的传递List<String> 或者 ...

  5. 长见识了,知道了collected和Graphite 这两个东东

    今天下午的讨论会议中,听到了两个名词collected和Graphite这是神马东东,以前在bingo的时候也没听说过,开完会下去查了下.原来他两是监控系统的啊.以前也从来没做过系统监控方面的项目,这 ...

  6. 烂泥:openvpn配置文件详解

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 在上一篇文章<烂泥:ubuntu 14.04搭建OpenVPN服务器>中,我们主要讲解了openvpn的搭建与使用,这篇文章我们来详细介绍下有 ...

  7. spark standalone ha spark submit

    when you build a spark standalone ha cluster, when you submit your app,  you should send it to the l ...

  8. [转]django自定义表单提交

    原文网址:http://www.cnblogs.com/retop/p/4677148.html 注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义 ...

  9. 爬虫(Java实现)

    说明: 使用了htmlparser库. 运行过程: 从某个网址开始,摘取网页中的链接,并通过广度搜索,对这些链接递归执行上述操作. 在以上过程中把网址存入数据库中.以防止搜索中出现环路. 但是,程序经 ...

  10. node基础11:接受参数

    1.接收参数 在Node中接受GET/POST请求的参数不像PHP那样,在PHP中直接有全局变量$_GET,$_POST来接受url,或者请求体重的参数. 在node中接受GET参数使用url.par ...