《叠加层概述--删除层应用方法》由会员分享,可在线阅读,更多相关《叠加层概述--删除层应用方法(3页珍藏版)》请在金锄头文库上搜索。
1、叠加层概述叠加层是地图上与纬度/经度坐标绑定的对象,会随您拖动或缩放地图而移动。叠加层表示的是“添加”到地图中以标明点、线、区域或对象集合的对象。Google Maps API 包含以下几种叠加层: 地图上的单个位置显示为标记。标记有时可显示自定义的图标图片,此时标记通常被称为“图标”。标记和图标是 Marker 类型的对象。(有关详细信息,请参见下面的标记和图标。) 地图上的线显示为折线(表示一系列按顺序排列的位置)。线是 Polyline 类型的对象。(有关详细信息,请参见折线。) 地图上的不规则形状区域显示为 多边形,多边形类似于折线。与折线相同的是,多边形也是由一系列按顺序排列的位置构
2、成的;不同的是,多边形定义的是封闭区域。(有关详细信息,请参见下面的多边形。) 地图图层可显示为叠加层地图类型。您可以通过创建自定义地图类型以创建自己的图块集,该自定义地图类型可取代基本地图图块集,或作为叠加层显示在现有基本地图图块集之上。(有关详细信息,请参见自定义地图类型。) 信息窗口也是特殊类型的叠加层,用于在指定地图位置的一个弹出式气泡框内显示内容(通常是文字或图片)。(有关详细信息,请参见信息窗口。) 您还可以实现自己的自定义叠加层。这些自定义叠加层会实现 OverlayView 接口。(有关详细信息,请参见自定义叠加层。)添加叠加层叠加层通常在构造时添加到地图中。所有叠加层都会定义
3、构造中所用的 Options 对象,以指定应显示叠加层的地图。您也可以使用叠加层的 setMap() 方法,将其传递给要添加叠加层的地图,从而直接在地图上添加叠加层。var myLatlng = new google.maps.LatLng(-25.363882,131.044922); var myOptions = zoom: 4, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP, var map = new google.maps.Map(document.getElementById(map_canvas), myO
4、ptions); var marker = new google.maps.Marker( position: myLatlng, title:Hello World! ); / To add the marker to the map, call setMap(); marker.setMap(map); 删除叠加层要从地图上删除叠加层,可调用叠加层的 setMap() 方法,传递 null。请注意,调用此方法不会删除叠加层,而只是从地图上删除叠加层。如果您要删除叠加层,则应当从地图上删除叠加层,然后将叠加层设置为 null。如果您要管理一组叠加层,则应当创建一个数组以存储这些叠加层。使用数
5、组后,只要您需要删除叠加层,就可以对数组中的每个叠加层调用 setMap()。(请注意,与第 2 版不同,该版本中未提供 clearOverlays() 方法。对于跟踪叠加层并在不需要时将其从地图中删除的任务,您需要自己执行。)要删除叠加层,您可以从地图上删除叠加层并将数组的 length 设置为 0,但此操作会删除对叠加层的所有引用。下面示例的效果是点击地图时将标记放在地图上,然后将标记放入数组中。叠加层稍后可以删除、显示或删除:var map; var markersArray = ; function initialize() var haightAshbury = new google
6、.maps.LatLng(37.7699298, -122.4469157); var mapOptions = zoom: 12, center: haightAshbury, mapTypeId: google.maps.MapTypeId.TERRAIN ; map = new google.maps.Map(document.getElementById(map_canvas), mapOptions); google.maps.event.addListener(map, click, function(event) addMarker(event.latLng); ); funct
7、ion addMarker(location) marker = new google.maps.Marker( position: location, map: map ); markersArray.push(marker); / Removes the overlays from the map, but keeps them in the array function clearOverlays() if (markersArray) for (i in markersArray) markersArrayi.setMap(null); / Shows any overlays cur
8、rently in the array function showOverlays() if (markersArray) for (i in markersArray) markersArrayi.setMap(map); / Deletes all markers in the array by removing references to them function deleteOverlays() if (markersArray) for (i in markersArray) markersArrayi.setMap(null); markersArray.length = 0;