Google 地圖控件集


一個(gè)Google 地圖 - 默認(rèn)控件集設(shè)置:


Google 地圖 - 默認(rèn)控件集設(shè)置:

當(dāng)使用一個(gè)標(biāo)準(zhǔn)的google地圖,它的默認(rèn)設(shè)置如下:

  • .Zoom-顯示一個(gè)滑動(dòng)條來(lái)控制map的Zoom級(jí)別

  • .PPan-地圖上顯示的是一個(gè)平底碗樣的控件,點(diǎn)擊4個(gè)角平移地圖

  • .MapType-允許用戶(hù)在map types(roadmap 和 satallite)之間切換

  • .StreetView-顯示為一個(gè)街景小人圖標(biāo),可拖拽到地圖上某個(gè)點(diǎn)來(lái)打開(kāi)街景


Google 地圖 - 更多控件集

除了以上默認(rèn)控件集,Google還有:

  • .Scale-顯示地圖比例尺

  • .Rotate-顯示一個(gè)小的圓周圖標(biāo),可以轉(zhuǎn)動(dòng)地圖

  • .verview Map-從一個(gè)廣域的視角俯視地圖

創(chuàng)建地圖時(shí)你可以通過(guò)設(shè)置選項(xiàng)指定哪些控件集顯示或者通過(guò)調(diào)用 setOptions() 來(lái)改變地圖的設(shè)置選項(xiàng)。


Google 地圖 - 關(guān)閉默認(rèn)控件集

你可能希望能夠關(guān)閉默認(rèn)的控件集。

為了關(guān)閉默認(rèn)控件集,設(shè)置地圖的disableDefaultUI的屬性為true:

實(shí)例

<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:7,
    disableDefaultUI:true,    
    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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例



Google 地圖 - 開(kāi)所有控件集

一些控件集默認(rèn)顯示在地圖上,而其它的不會(huì),除非你設(shè)置它們。

設(shè)置控件為true使其可見(jiàn)-設(shè)置控件為false則隱藏它。

以下實(shí)例開(kāi)啟所有的控件:

實(shí)例

<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:7,
    panControl:true,
    zoomControl:true,
    mapTypeControl:true,
    scaleControl:true,
    streetViewControl:true,
    overviewMapControl:true,
    rotateControl:true,    
    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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例



Google 地圖 - 修改控件集

某些地圖控件是可配置的。通過(guò)制定控件選項(xiàng)域改變控件集。

F舉個(gè)例子來(lái)說(shuō),修改Zoom 控件的選項(xiàng)在zoomControlOptions指定。zoomControlOptions包含如下3種選項(xiàng):

  • .google.maps.ZoomControlStyle.SMALL-顯示最小化zoom 控件

  • .google.maps.ZoomControlStyle.LARGE-顯示標(biāo)準(zhǔn)zoom滑動(dòng)控件

  • .google.maps.ZoomControlStyle.DEFAULT-基于設(shè)備和地圖大小,選擇最合適的控件

實(shí)例

<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:7,
    zoomControl:true,
    zoomControlOptions: {
      style:google.maps.ZoomControlStyle.SMALL
    },
    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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

注意: 如果需要修改一個(gè)控件,首先開(kāi)啟控件(設(shè)置其為true)。

另一個(gè)控件為 MapType 控件。

MapType 控件可顯示為以下 style 選項(xiàng)之一:

  • google.maps.MapTypeControlStyle.HORIZONTAL_BAR,用于在水平欄中將一組控件顯示為如 Google Maps 中所示按鈕。

  • google.maps.MapTypeControlStyle.DROPDOWN_MENU,用于顯示單個(gè)按鈕控件,以便您從下拉菜單中選擇地圖類(lèi)型。

  • google.maps.MapTypeControlStyle.DEFAULT,用于顯示"默認(rèn)"的行為,該行為取決于屏幕尺寸,并且可能會(huì)在 API 以后的版本中有所變化。

實(shí)例

<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:7,
    mapTypeControl:true,
    mapTypeControlOptions: {
      style:google.maps.MapTypeControlStyle.DROPDOWN_MENU
    },
    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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例

同樣你可以使用ControlPosition屬性指定控件的位置:

實(shí)例

<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:7,
    mapTypeControl:true,
    mapTypeControlOptions: {
      style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
      position:google.maps.ControlPosition.TOP_CENTER
    },
    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>

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例



Google 地圖 - 自定義控件集

創(chuàng)建一個(gè)返回倫敦自定義控件,用于點(diǎn)擊事件: (如果地圖被拖拽):

實(shí)例

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

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

// Add a Home control that returns the user to London
function HomeControl(controlDiv, map) {
  controlDiv.style.padding = '5px';
  var controlUI = document.createElement('div');
  controlUI.style.backgroundColor = 'yellow';
  controlUI.style.border='1px solid';
  controlUI.style.cursor = 'pointer';
  controlUI.style.textAlign = 'center';
  controlUI.title = 'Set map to London';
  controlDiv.appendChild(controlUI);
  var controlText = document.createElement('div');
  controlText.style.fontFamily='Arial,sans-serif';
  controlText.style.fontSize='12px';
  controlText.style.paddingLeft = '4px';
  controlText.style.paddingRight = '4px';
  controlText.innerHTML = '<b>Home<b>'
  controlUI.appendChild(controlText);

  // Setup click-event listener: simply set the map to London
  google.maps.event.addDomListener(controlUI, 'click', function() {
    map.setCenter(london)
  });
}

function initialize() {
  var mapDiv = document.getElementById('googleMap');
  var myOptions = {
    zoom: 12,
    center: london,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(mapDiv, myOptions); 
  // Create a DIV to hold the control and call HomeControl()
  var homeControlDiv = document.createElement('div');
  var homeControl = new HomeControl(homeControlDiv, map);
//  homeControlDiv.index = 1;
  map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv);
}

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

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

運(yùn)行實(shí)例 ?

點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例



Google 地圖 - 控件集參考手冊(cè)

Google Maps API 參考手冊(cè).