日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

百度地图API开发指南

發(fā)布時間:2025/3/14 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度地图API开发指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

百度地圖API開發(fā)指南

?

本文為百度地圖API官方版本的開發(fā)指南,供各位51CTO的網(wǎng)友進(jìn)行參考。

簡介什么是百度地圖API?

百度地圖API是一套由JavaScript語言編寫的應(yīng)用程序接口,它能夠幫助您在網(wǎng)站中構(gòu)建功能豐富、交互性強的地圖應(yīng)用。百度地圖API包含了構(gòu)建地圖基本功能的各種接口,提供了諸如本地搜索、路線規(guī)劃等數(shù)據(jù)服務(wù)。

面向的讀者

API是提供給那些具有一定JavaScript編程經(jīng)驗和了解面向?qū)ο蟾拍畹淖x者使用。此外,讀者還應(yīng)該對地圖產(chǎn)品有一定的了解。

您在使用中遇到任何問題,都可以通過API貼吧或交流群反饋給我們。

獲取API

地圖API是由JavaScript語言編寫的,您在使用之前需要通過<script>標(biāo)簽將API引用到頁面中:

  • <script?src="http://api.map.baidu.com/api?v=1.2"?type="text/javascript"></script>?
  • 其中參數(shù)v為API當(dāng)前的版本號,目前最新版本為1.2。在1.2版本之前您還可以設(shè)置services參數(shù),以告知API是否加載服務(wù)部分,true表示加載,false表示不加載,默認(rèn)為true。

    開發(fā)移動平臺上的地圖應(yīng)用

    API自1.1版本起開始支持iPhone、Android這樣的移動平臺。用戶通過手機瀏覽器就可以訪問由地圖API創(chuàng)建出來的應(yīng)用。移動平臺的屏幕尺寸通常比PC或筆記本要小,操作方式也有所不同。為了更好的在手機瀏覽器上展示地圖,我們有如下建議:

    將地圖容器高設(shè)置為100%,使其充滿整個屏幕,或者您也可以計算瀏覽器窗口的大小并進(jìn)行設(shè)置。添加下面的meta標(biāo)簽: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />這樣做是為了讓頁面以正常比例進(jìn)行顯示并且禁止用戶縮放頁面的操作。

    您可以參考 Apple's Developer documentation 和 Android documentation 獲得更多信息。

    異步加載

    API 1.1和1.2版本支持異步加載,您可以在引用腳本的時候添加callback參數(shù),當(dāng)腳本加載完成后callback函數(shù)會被立刻調(diào)用。請參考下面的使用示例:

  • <!DOCTYPE?html>?
  • <html><head><meta?charset="utf-8"/><title>異步加載</title>
  • <script?type="text/javascript">function?initialize()?{  ?
  • var?mp?=?new?BMap.Map('map');  ?
  • mp.centerAndZoom(new?BMap.Point(121.491,?31.233),?11);}function?loadScript()?{  ?
  • var?script?=?document.createElement("script");  ?
  • script.src?=?"http://api.map.baidu.com/api?v=1.2&callback=initialize";  ?
  • document.body.appendChild(script);}window.onload?=?loadScript;</script></head><body>?
  •  <div?id="map"?style="width:500px;height:320px"></div>?
  • </body></html>兼容性?
  • 瀏覽器:IE 6.0+、Firefox 3.6+、Opera 9.0+、Safari 3.0+、Chrome

    操作系統(tǒng):Windows、Mac、Linux

    移動平臺:iPhone、Android

    版本說明

    地址 http://api.map.baidu.com/api?v=1.2 中的參數(shù)v表示您加載API的版本,例如當(dāng)前API的最新版本為1.2,則您可在地址中添加 v=1.2。當(dāng)API升級后,如果已有接口在使用、命名等方面發(fā)生了變化,我們會為其增加一個新的版本號,這不會對您現(xiàn)有的應(yīng)用造成任何影響。如果升級只是修復(fù)一些bug或者在不影響現(xiàn)有功能的前提下增加接口、改善性能,則版本號不會發(fā)生變化。您可以在更新日志頁面查看版本的變化。

    問題解答

    如果您在使用百度地圖API中遇到問題,請嘗試通過以下途徑解決:

    確認(rèn)您使用了正確的地圖API地址。訪問百度地圖API吧,查找相關(guān)問題的帖子,或者將您的問題發(fā)布到貼吧中。基礎(chǔ)知識 百度地圖的“Hello, World”

    開始學(xué)習(xí)百度地圖API最簡單的方式是看一個簡單的示例。以下代碼創(chuàng)建了一個地圖并以天安門作為地圖的中心:

  • <!DOCTYPE?html><html><head>?
  • <meta?name="viewport"?content="initial-scale=1.0,?user-scalable=no"?/>
  • <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/>?
  • <title>Hello,?World</title>?
  • <style?type="text/css">html{height:100%}body{height:100%;margin:0px;padding:0px}#container{height:100%}</style>?
  • <script?type="text/javascript"?src="http://api.map.baidu.com/api?v=1.2">?
  • </script></head><body>?
  • <div?id="container"></div>?
  • <script?type="text/javascript">var?map?=?new?BMap.Map("container");? ?
  • //?創(chuàng)建地圖實例var?point?=?new?BMap.Point(116.404,?39.915);? ?
  • //?創(chuàng)建點坐標(biāo)map.centerAndZoom(point,?15);? ?
  • //?初始化地圖,設(shè)置中心點坐標(biāo)和地圖級別</script>?
  • </body></html>?
  • 下面我們分步向您介紹:

    準(zhǔn)備頁面

    根據(jù)HTML標(biāo)準(zhǔn),每一份HTML文檔都應(yīng)該聲明正確的文檔類型,我們建議您使用最新的符合HTML5規(guī)范的文檔聲明:

    <!DOCTYPE html>

    您也可以根據(jù)需要選擇其他類型的文檔聲明,這樣瀏覽器會以標(biāo)準(zhǔn)的方式對頁面進(jìn)行渲染,保證頁面最大的兼容性。我們不建議您使用quirks模式進(jìn)行開發(fā)。

    下面我們添加一個meta標(biāo)簽,以便使您的頁面更好的在移動平臺上展示。

  • <meta?name="viewport"?content="initial-scale=1.0,?user-scalable=no"?/>?
  • 接著我們設(shè)置樣式,使地圖充滿整個瀏覽器窗口:

  • <style?type="text/css"> ? ?
  • html{height:100%} ? ?
  • body{height:100%;margin:0px;padding:0px} ? ?
  • #container{height:100%} ? ?
  • </style>引用百度地圖API文件? ?
  • <script?type="text/javascript"?src="http://api.map.baidu.com/api?v=1.2">?
  • </script>創(chuàng)建地圖容器元素?
  • 地圖需要一個HTML元素作為容器,這樣才能展現(xiàn)到頁面上。這里我們創(chuàng)建了一個div元素。

    命名空間

    API使用BMap作為命名空間,所有類均在該命名空間之下,比如:BMap.Map、BMap.Control、BMap.Overlay。

    創(chuàng)建地圖實例 var map = new BMap.Map("container");

    位于BMap命名空間下的Map類表示地圖,通過new操作符可以創(chuàng)建一個地圖實例。其參數(shù)可以是元素id也可以是元素對象。

    注意在調(diào)用此構(gòu)造函數(shù)時應(yīng)確保容器元素已經(jīng)添加到地圖上。

    創(chuàng)建點坐標(biāo) var point = new BMap.Point(116.404, 39.915);

    這里我們使用BMap命名空間下的Point類來創(chuàng)建一個坐標(biāo)點。Point類描述了一個地理坐標(biāo)點,其中116.404表示經(jīng)度,39.915表示緯度。

    地圖初始化map.centerAndZoom(point, 15);

    在創(chuàng)建地圖實例后,我們需要對其進(jìn)行初始化,BMap.Map.centerAndZoom()方法要求設(shè)置中心點坐標(biāo)和地圖級別。地圖必須經(jīng)過初始化才可以執(zhí)行其他操作。

    地圖配置與操作

    地圖被實例化并完成初始化以后,就可以與其進(jìn)行交互了。API中的地圖對象的外觀與行為與百度地圖網(wǎng)站上交互的地圖非常相似。它支持鼠標(biāo)拖拽、滾輪縮放、雙擊放大等交互功能。您也可以修改配置來改變這些功能。比如,默認(rèn)情況下地圖不支持鼠標(biāo)滾輪縮放操作,因為這樣可能會影響整個頁面的用戶體驗,但是如果您希望在地圖中使用鼠標(biāo)滾輪控制縮放,則可以調(diào)用map.enableScrollWheelZoom方法來開啟。配置選項可以在Map類參考的配置方法一節(jié)中找到。

    此外,您還可以通過編程的方式與地圖交互。Map類提供了若干修改地圖狀態(tài)的方法。例如:setCenter()、panTo()、zoomTo()等等。

    下面示例顯示一個地圖,等待兩秒鐘后,它會移動到新中心點。panTo()方法將讓地圖平滑移動至新中心點,如果移動距離超過了當(dāng)前地圖區(qū)域大小,則地圖會直跳到該點。

  • var?map?=?new?BMap.Map("container"); ? ?
  • var?point?=?new?BMap.Point(116.404,?39.915); ?map.centerAndZoom(point,?15); ? ?
  • window.setTimeout(function(){ ?
  • map.panTo(new?BMap.Point(116.409,?39.918)); ?
  •  ?},?2000);?控件?地圖控件概述?
  • 百度地圖上負(fù)責(zé)與地圖交互的UI元素稱為控件。百度地圖API中提供了豐富的控件,您還可以通過Control類來實現(xiàn)自定義控件。

    地圖API中提供的控件有:

    Control:控件的抽象基類,所有控件均繼承此類的方法、屬性。通過此類您可實現(xiàn)自定義控件。

    NavigationControl:地圖平移縮放控件,默認(rèn)位于地圖左上方,它包含控制地圖的平移和縮放的功能。

    OverviewMapControl:縮略地圖控件,默認(rèn)位于地圖右下方,是一個可折疊的縮略地圖。

    ScaleControl:比例尺控件,默認(rèn)位于地圖左下方,顯示地圖的比例關(guān)系。

    MapTypeControl:地圖類型控件,默認(rèn)位于地圖右上方。

    CopyrightControl:版權(quán)控件,默認(rèn)位于地圖左下方。

    向地圖添加控件

    可以使用Map.addControl()方法向地圖添加控件。在此之前地圖需要進(jìn)行初始化。例如,要將標(biāo)準(zhǔn)地圖控件添加到地圖中,可在代碼中添加如下內(nèi)容:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.addControl(new BMap.NavigationControl());

    可以向地圖添加多個控件。在本例中我們向地圖添加一個平移縮放控件、一個比例尺控件和一個縮略圖控件。在地圖中添加控件后,它們即刻生效。

  • map.addControl(new?BMap.NavigationControl());? ?
  • map.addControl(new?BMap.ScaleControl());? ?
  • map.addControl(new?BMap.OverviewMapControl());? ?
  • map.addControl(new?BMap.MapTypeControl());? ?
  • map.setCurrentCity("北京");?//?僅當(dāng)設(shè)置城市信息時, ?
  • MapTypeControl的切換功能才能可用?控制控件位置?
  • 初始化控件時,可提供一個可選參數(shù),其中的anchor和offset屬性共同控制控件在地圖上的位置。

    控件停靠位置

    anchor表示控件的停靠位置,即控件停靠在地圖的哪個角。當(dāng)?shù)貓D尺寸發(fā)生變化時,控件會根據(jù)停靠位置的不同來調(diào)整自己的位置。anchor允許的值為:

    BMAP_ANCHOR_TOP_LEFT 表示控件定位于地圖的左上角。

    BMAP_ANCHOR_TOP_RIGHT 表示控件定位于地圖的右上角。

    BMAP_ANCHOR_BOTTOM_LEFT 表示控件定位于地圖的左下角。

    BMAP_ANCHOR_BOTTOM_RIGHT 表示控件定位于地圖的右下角。

    ?

    控件位置偏移

    除了指定停靠位置外,還可以通過偏移量來指示控件距離地圖邊界有多少像素。如果兩個控件的停靠位置相同,那么控件可能會重疊在一起,這時就可以通過偏移值使二者分開顯示。

  • var?opts?=?{offset:?new?BMap.Size(150,?5)}?map.addControl(new?BMap.ScaleControl(opts));?修改控件配置?
  • 地圖API的控件提供了豐富的配置參數(shù),您可參考API文檔來修改它們以便得到符合要求的控件外觀。例如,NavigationControl控件就提供了如下類型:

    BMAP_NAVIGATION_CONTROL_LARGE 表示顯示完整的平移縮放控件。

    BMAP_NAVIGATION_CONTROL_SMALL 表示顯示小型的平移縮放控件。

    BMAP_NAVIGATION_CONTROL_PAN 表示只顯示控件的平移部分功能。

    BMAP_NAVIGATION_CONTROL_ZOOM 表示只顯示控件的縮放部分功能。

    下圖從左向右依次展示了上述不同類型的控件外觀:

    ?

    下面的示例將調(diào)整平移縮放地圖控件的外觀。

    var opts = {type: BMAP_NAVIGATION_CONTROL_SMALL} map.addControl(new BMap.NavigationControl(opts)); 自定義控件

    百度地圖API允許您通過繼承Control來創(chuàng)建自定義地圖控件。

    要創(chuàng)建可用的自定義控件,您需要做以下工作:

    定義一個自定義控件的構(gòu)造函數(shù)。

    設(shè)置自定義控件構(gòu)造函數(shù)的prototype屬性為Control的實例,以便繼承控件基類。

    實現(xiàn)initialize()方法并提供defaultAnchor和defaultOffset屬性。

    定義構(gòu)造函數(shù)并繼承Control

    首先您需要定義自定義控件的構(gòu)造函數(shù),并在構(gòu)造函數(shù)中提供defaultAnchor和defaultOffset兩個屬性,以便API正確定位控件位置,接著讓其繼承于Control。在下面的示例中我們定義一個名為ZoomControl的控件,每一次點擊將地圖放大兩個級別。它具有文本標(biāo)識,而不是平移縮放控件中使用的圖形圖標(biāo)。

  • //?定義一個控件類,即function?function?ZoomControl(){? ?
  • //?設(shè)置默認(rèn)停靠位置和偏移量?this.defaultAnchor?=?BMAP_ANCHOR_TOP_LEFT;? ?
  • this.defaultOffset?=?new?BMap.Size(10,?10);?}? ?
  • //?通過JavaScript的prototype屬性繼承于BMap.Control?ZoomControl.prototype?=?new?BMap.Control(); ?
  • ?初始化自定義控件?
  • 當(dāng)調(diào)用map.addControl()方法添加自定義控件時,API會調(diào)用該對象的initialize()方法用來初始化控件,您需要實現(xiàn)此方法并在其中創(chuàng)建控件所需的DOM元素,并添加DOM事件。所有自定義控件中的DOM元素最終都應(yīng)該添加到地圖容器(即地圖所在的DOM元素)中去,地圖容器可以通過map.getContainer()方法獲得。最后initialize()方法需要返回控件容器的DOM元素。

  • //?自定義控件必須實現(xiàn)initialize方法,并且將控件的DOM元素返回 ?
  • ?//?在本方法中創(chuàng)建個div元素作為控件的容器,并將其添加到地圖容器中?
  • ZoomControl.prototype.initialize?=?function(map){? ?
  • //?創(chuàng)建一個DOM元素?var?div?=?document.createElement("div");? ?
  • //?添加文字說明?div.appendChild(document.createTextNode("放大2級")); ?
  • ?//?設(shè)置樣式?div.style.cursor?=?"pointer";?
  • div.style.border?=?"1px?solid?gray";?
  • div.style.backgroundColor?=?"white";? ?
  • //?綁定事件,點擊一次放大兩級?div.onclick?=?function(e){?map.zoomTo(map.getZoom()?+?2);?}? ?
  • //?添加DOM元素到地圖中?map.getContainer().appendChild(div);? ?
  • //?將DOM元素返回?return?div;?}?添加自定義控件?
  • 添加自定義控件與添加其他控件方法一致,調(diào)用map.addControl()方法即可。

    // 創(chuàng)建控件實例 var myZoomCtrl = new ZoomControl(); // 添加到地圖當(dāng)中 map.addControl(myZoomCtrl); 覆蓋物 地圖覆蓋物概述

    所有疊加或覆蓋到地圖的內(nèi)容,我們統(tǒng)稱為地圖覆蓋物。如標(biāo)注、矢量圖形元素(包括:折線和多邊形和圓)、信息窗口等。覆蓋物擁有自己的地理坐標(biāo),當(dāng)您拖動或縮放地圖時,它們會相應(yīng)的移動。

    地圖API提供了如下幾種覆蓋物:

    Overlay:覆蓋物的抽象基類,所有的覆蓋物均繼承此類的方法。

    Marker:標(biāo)注表示地圖上的點,可自定義標(biāo)注的圖標(biāo)。

    Label:表示地圖上的文本標(biāo)注,您可以自定義標(biāo)注的文本內(nèi)容。

    Polyline:表示地圖上的折線。

    Polygon:表示地圖上的多邊形。多邊形類似于閉合的折線,另外您也可以為其添加填充顏色。

    Circle: 表示地圖上的圓。

    InfoWindow:信息窗口也是一種特殊的覆蓋物,它可以展示更為豐富的文字和多媒體信息。注意:同一時刻只能有一個信息窗口在地圖上打開。

    可以使用map.addOverlay方法向地圖添加覆蓋物,使用map.removeOverlay方法移除覆蓋物,注意此方法不適用于InfoWindow。

    標(biāo)注

    標(biāo)注表示地圖上的點。API提供了默認(rèn)圖標(biāo)樣式,您也可以通過Icon類來指定自定義圖標(biāo)。Marker的構(gòu)造函數(shù)的參數(shù)為Point和MarkerOptions(可選)。注意:當(dāng)您使用自定義圖標(biāo)時,標(biāo)注的地理坐標(biāo)點將位于標(biāo)注所用圖標(biāo)的中心位置,您可通過Icon的offset屬性修改標(biāo)定位置。

    下面的示例向地圖中心點添加了一個標(biāo)注,并使用默認(rèn)的標(biāo)注樣式。

  • var?map?=?new?BMap.Map("container");? ?
  • var?point?=?new?BMap.Point(116.404,?39.915);? ?
  • map.centerAndZoom(point,?15);? ?
  • var?marker?=?new?BMap.Marker(point);? ?
  • //?創(chuàng)建標(biāo)注?map.addOverlay(marker);? ?
  • //?將標(biāo)注添加到地圖中?定義標(biāo)注圖標(biāo)?
  • 通過Icon類可實現(xiàn)自定義標(biāo)注的圖標(biāo),下面示例通過參數(shù)MarkerOptions的icon屬性進(jìn)行設(shè)置,您也可以使用marker.setIcon()方法。

  • var?map?=?new?BMap.Map("container");?
  • var?point?=?new?BMap.Point(116.404,?39.915);?
  • map.centerAndZoom(point,?15);?//?編寫自定義函數(shù),創(chuàng)建標(biāo)注?
  • function?addMarker(point,?index){?
  • //?創(chuàng)建圖標(biāo)對象?
  • var?myIcon?=?new?BMap.Icon("markers.png",?new?BMap.Size(23,?25), ?
  • ?{?//?指定定位位置。? ?
  • //?當(dāng)標(biāo)注顯示在地圖上時,其所指向的地理位置距離圖標(biāo)左上 ?
  • ?//?角各偏移10像素和25像素。您可以看到在本例中該位置即是? ?
  • //?圖標(biāo)中央下端的尖角位置。?offset:?new?BMap.Size(10,?25),?//?設(shè)置圖片偏移。? ?
  • //?當(dāng)您需要從一幅較大的圖片中截取某部分作為標(biāo)注圖標(biāo)時,您? ?
  • //?需要指定大圖的偏移位置,此做法與css?sprites技術(shù)類似。?
  • imageOffset:?new?BMap.Size(0,?0?-?index?*?25)? ?
  • //?設(shè)置圖片偏移?});? ?
  • //?創(chuàng)建標(biāo)注對象并添加到地圖? ?
  • var?marker?=?new?BMap.Marker(point,?{icon:?myIcon});? ?
  • map.addOverlay(marker);?}?//?隨機向地圖添加10個標(biāo)注? ?
  • var?bounds?=?map.getBounds();? ?
  • var?lngSpan?=?bounds.maxX?-?bounds.minX; ?
  • ?var?latSpan?=?bounds.maxY?-?bounds.minY;? ?
  • for?(var?i?=?0;? ?
  • i?<?10;?i?++)?{?
  • var?point?=?new?BMap.Point(bounds.minX?+?lngSpan?*?(Math.random()?*?0.7?+?0.15),?bounds.minY?+?latSpan?*?(Math.random()?*?0.7?+?0.15));?
  • addMarker(point,?i);?}?監(jiān)聽標(biāo)注事件?
  • 事件方法與Map事件機制相同。可參考事件部分。

  • marker.addEventListener("click",?function(){?alert("您點擊了標(biāo)注");?});?可托拽的標(biāo)注?
  • marker的enableDragging和disableDragging方法可用來開啟和關(guān)閉標(biāo)注的拖拽功能。默認(rèn)情況下標(biāo)注不支持拖拽,您需要調(diào)用marker.enableDragging()方法來開啟拖拽功能。在標(biāo)注開啟拖拽功能后,您可以監(jiān)聽標(biāo)注的dragend事件來捕獲拖拽后標(biāo)注的最新位置。

  • marker.enableDragging();?marker.addEventListener("dragend",?function(e){?alert("當(dāng)前位置:"?+?e.point.lng?+?",?"?+?e.point.lat);?})?內(nèi)存釋放?
  • 在API 1.0版本中,如果您需要在地圖中反復(fù)添加大量的標(biāo)注,這可能會占用較多的內(nèi)存資源。如果您的標(biāo)注在移除后不再使用,可調(diào)用Overlay.dispose()方法來釋放內(nèi)存。注意在1.0版本中,調(diào)用此方法后標(biāo)注將不能再次添加到地圖上。自1.1版本開始,您不在需要使用此方法來釋放內(nèi)存資源,API會自動幫助您完成此工作。

    例如,您可以在標(biāo)注被移除后調(diào)用此方法:

  • map.removeOverlay(marker);?marker.dispose();? ?
  • //?1.1?版本不需要這樣調(diào)用?信息窗口?
  • 信息窗口在地圖上方的浮動顯示HTML內(nèi)容。信息窗口可直接在地圖上的任意位置打開,也可以在標(biāo)注對象上打開(此時信息窗口的坐標(biāo)與標(biāo)注的坐標(biāo)一致)。 您可以使用InfoWindow來創(chuàng)建一個信息窗實例,注意同一時刻地圖上只能有一個信息窗口處于打開狀態(tài)。

  • var?opts?=?{?width?:?250,? ?
  • //?信息窗口寬度? ?
  • height:?100,? ?
  • //?信息窗口高度? ?
  • title?:?"Hello"? ?
  • //?信息窗口標(biāo)題?}? ?
  • var?infoWindow?=?new?BMap.InfoWindow("World",?opts);? ?
  • //?創(chuàng)建信息窗口對象? ?
  • map.openInfoWindow(infoWindow,?map.getCenter());? ?
  • //?打開信息窗口?折線?
  • Polyline表示地圖上的折線覆蓋物。它包含一組點,并將這些點連接起來形成折線。

    添加折線

    折線在地圖上繪制為一系列直線段。可以自定義這些線段的顏色、粗細(xì)和透明度。顏色可以是十六進(jìn)制數(shù)字形式(比如:#ff0000)或者是顏色關(guān)鍵字(比如:red)。

    Polyline的繪制需要瀏覽器支持矢量繪制功能。在Internet Explorer中,地圖使用VML繪制折線;在其他瀏覽器中使用SVG或者Canvas

    以下代碼段會在兩點之間創(chuàng)建6像素寬的藍(lán)色折線:

  • var?polyline?=?new?BMap.Polyline([?
  • new?BMap.Point(116.399,?39.910),?
  • new?BMap.Point(116.405,?39.920)?],?{strokeColor:"blue",?
  • strokeWeight:6,?strokeOpacity:0.5}?);? ?
  • map.addOverlay(polyline);?自定義覆蓋物?
  • API自1.1版本起支持用戶自定義覆蓋物。

    要創(chuàng)建自定義覆蓋物,您需要做以下工作:

    定義一個自定義覆蓋物的構(gòu)造函數(shù),通過構(gòu)造函數(shù)參數(shù)可以傳遞一些自由的變量。

    設(shè)置自定義覆蓋物對象的prototype屬性為Overlay的實例,以便繼承覆蓋物基類。

    實現(xiàn)initialize方法,當(dāng)調(diào)用map.addOverlay方法時,API會調(diào)用此方法。

    實現(xiàn)draw方法。

    定義構(gòu)造函數(shù)并繼承Overlay

    首先您需要定義自定義覆蓋物的構(gòu)造函數(shù),在下面的示例中我們定義一個名為SquareOverlay的構(gòu)造函數(shù),它包含中心點和邊長兩個參數(shù),用來在地圖上創(chuàng)建一個方形覆蓋物。

    // 定義自定義覆蓋物的構(gòu)造函數(shù) function SquareOverlay(center, length, color){ this._center = center; this._length = length; this._color = color; } // 繼承API的BMap.Overlay SquareOverlay.prototype = new BMap.Overlay(); 初始化自定義覆蓋物

    當(dāng)調(diào)用map.addOverlay方法添加自定義覆蓋物時,API會調(diào)用該對象的initialize方法用來初始化覆蓋物,在初始化過程中需要創(chuàng)建覆蓋物所需要的DOM元素,并添加到地圖相應(yīng)的容器中。

    地圖提供了若干容器供覆蓋物展示,通過map.getPanes方法可以得到這些容器元素,它們包括:

    floatPane

    markerMouseTarget

    floatShadow

    labelPane

    markerPane

    mapPane

    這些對象代表了不同的覆蓋物容器元素,它們之間存在著覆蓋關(guān)系,最上一層為floatPane,用于顯示信息窗口內(nèi)容,下面依次為標(biāo)注點擊區(qū)域?qū)印⑿畔⒋翱陉幱皩印⑽谋緲?biāo)注層、標(biāo)注層和矢量圖形層。

    我們自定義的方形覆蓋物可以添加到任意圖層上,這里我們選擇添加到markerPane上,作為其一個子結(jié)點。

    // 實現(xiàn)初始化方法 SquareOverlay.prototype.initialize = function(map){ // 保存map對象實例 this._map = map; // 創(chuàng)建div元素,作為自定義覆蓋物的容器 var div = document.createElement("div"); div.style.position = "absolute"; // 可以根據(jù)參數(shù)設(shè)置元素外觀 div.style.width = this._length + "px"; div.style.height = this._length + "px"; div.style.background = this._color; // 將div添加到覆蓋物容器中 map.getPanes().markerPane.appendChild(div); // 保存div實例 this._div = div; // 需要將div元素作為方法的返回值,當(dāng)調(diào)用該覆蓋物的show、 // hide方法,或者對覆蓋物進(jìn)行移除時,API都將操作此元素。 return div; }繪制覆蓋物

    到目前為止,我們僅僅把覆蓋物添加到了地圖上,但是并沒有將它放置在正確的位置上。您需要在draw方法中設(shè)置覆蓋物的位置,每當(dāng)?shù)貓D狀態(tài)發(fā)生變化(比如:位置移動、級別變化)時,API都會調(diào)用覆蓋物的draw方法,用于重新計算覆蓋物的位置。通過map.pointToOverlayPixel方法可以將地理坐標(biāo)轉(zhuǎn)換到覆蓋物的所需要的像素坐標(biāo)。

    // 實現(xiàn)繪制方法 SquareOverlay.prototype.draw = function(){ // 根據(jù)地理坐標(biāo)轉(zhuǎn)換為像素坐標(biāo),并設(shè)置給容器 var position = this._map.pointToOverlayPixel(this._center); this._div.style.left = position.x - this._length / 2 + "px"; this._div.style.top = position.y - this._length / 2 + "px"; }移除覆蓋物

    當(dāng)調(diào)用map.removeOverlay或者map.clearOverlays方法時,API會自動將initialize方法返回的DOM元素進(jìn)行移除。

    顯示和隱藏覆蓋物

    自定義覆蓋物會自動繼承Overlay的show和hide方法,方法會修改由initialize方法返回的DOM元素的style.display屬性。如果自定義覆蓋物元素較為復(fù)雜,您也可以自己實現(xiàn)show和hide方法。

  • //?實現(xiàn)顯示方法? ?
  • SquareOverlay.prototype.show?=?function(){? ?
  • if?(this._div){?this._div.style.display?=?"";?}?} ?
  • ?//?實現(xiàn)隱藏方法? ?
  • SquareOverlay.prototype.hide?=?function(){? ?
  • if?(this._div){?this._div.style.display?=?"none";?}?} ?
  • 自定義其他方法?
  • 通過構(gòu)造函數(shù)的prototype屬性,您可以添加任何自定義的方法,比如下面這個方法每調(diào)用一次就能改變覆蓋物的顯示狀態(tài):

  • //?添加自定義方法? ?
  • SquareOverlay.prototype.toggle?=?function(){?if?(this._div){? ?
  • if?(this._div.style.display?==?""){?this.hide();?}? ?
  • else?{?this.show();?}?}?} ?
  • 添加覆蓋物?
  • 您現(xiàn)在已經(jīng)完成了一個完整的自定義覆蓋物的編寫,可以添加到地圖上了。

  • //?初始化地圖?var?map?=?new?BMap.Map("container");? ?
  • var?point?=?new?BMap.Point(116.404,?39.915);? ?
  • map.centerAndZoom(point,?15);? ?
  • //?添加自定義覆蓋物?var?mySquare?=?new?SquareOverlay(map.getCenter(),?100,?"red");? ?
  • map.addOverlay(mySquare);?事件?地圖事件概述?
  • 瀏覽器中的JavaScript是“事件驅(qū)動的”,這表示JavaScript通過生成事件來響應(yīng)交互,并期望程序能夠“監(jiān)聽”感興趣的活動。例如,在瀏覽器中,用戶的鼠標(biāo)和鍵盤交互可以創(chuàng)建在DOM內(nèi)傳播的事件。對某些事件感興趣的程序會為這些事件注冊JavaScript事件監(jiān)聽器,并在接收這些事件時執(zhí)行代碼。

    百度地圖API擁有一個自己的事件模型,程序員可監(jiān)聽地圖API對象的自定義事件,使用方法和DOM事件類似。但請注意,地圖API事件是獨立的,與標(biāo)準(zhǔn)DOM事件不同。

    事件監(jiān)聽

    百度地圖API中的大部分對象都含有addEventListener方法,您可以通過該方法來監(jiān)聽對象事件。例如,BMap.Map包含click、dblclick等事件。在特定環(huán)境下這些事件會被觸發(fā),同時監(jiān)聽函數(shù)會得到相應(yīng)的事件參數(shù)e,比如當(dāng)用戶點擊地圖時,e參數(shù)會包含鼠標(biāo)所對應(yīng)的地理位置point。

    有關(guān)地圖API對象的事件,請參考完整的API參考文檔。

    addEventListener方法有兩個參數(shù):監(jiān)聽的事件名稱和事件觸發(fā)時調(diào)用的函數(shù)。在下面示例中,每當(dāng)用戶點擊地圖時,會彈出一個警告框。

  • var?map?=?new?BMap.Map("container"); ?
  • ?map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11); ?
  • ?map.addEventListener("click",?function(){? ?
  • alert("您點擊了地圖。");?});?
  • 通過監(jiān)聽事件還可以捕獲事件觸發(fā)后的狀態(tài)。下面示例顯示用戶拖動地圖后地圖中心的經(jīng)緯度信息。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11);? ?
  • map.addEventListener("dragend",?function(){?var?center?=?map.getCenter();? ?
  • alert("地圖中心點變更為:"?+?center.lng?+?",?"?+?center.lat);?});? ?
  • 事件參數(shù)和this?
  • 在標(biāo)準(zhǔn)的DOM事件模型中(DOM Level 2 Events),監(jiān)聽函數(shù)會得到一個事件對象e,在e中可以獲取有關(guān)該事件的信息。同時在監(jiān)聽函數(shù)中this會指向觸發(fā)該事件的DOM元素。 百度地圖API的事件模型與此類似,在事件監(jiān)聽函數(shù)中傳遞事件對象e,每個e參數(shù)至少包含事件類型(type)和觸發(fā)該事件的對象(target)。 API還保證函數(shù)內(nèi)的this指向觸發(fā)(同時也是綁定)事件的API對象。

    例如,通過參數(shù)e得到點擊的經(jīng)緯度坐標(biāo)。

  • var?map?=?new?BMap.Map("container"); ?
  • ?map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11); ?
  • ?map.addEventListener("click",?function(e){? ?
  • alert(e.point.lng?+?",?"?+?e.point.lat);?});?
  • 或者通過this得到地圖縮放后的級別。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11); ?
  • ?map.addEventListener("zoomend",?function(){? ?
  • alert("地圖縮放至:"?+?this.getZoom()?+?"級");?});? ?
  • 移除監(jiān)聽事件?
  • 當(dāng)您不再希望監(jiān)聽事件時,可以將事件監(jiān)聽進(jìn)行移除。每個API對象提供了removeEventListener用來移除事件監(jiān)聽函數(shù)。

    下面示例中,用戶第一次點擊地圖會觸發(fā)事件監(jiān)聽函數(shù),在函數(shù)內(nèi)部對事件監(jiān)聽進(jìn)行了移除,因此后續(xù)的點擊操作則不會觸發(fā)監(jiān)聽函數(shù)。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11);? ?
  • function?showInfo(e){?alert(e.point.lng?+?",?"?+?e.point.lat);? ?
  • map.removeEventListener("click",?showInfo);?}?map.addEventListener("click",?showInfo);? ?
  • 地圖圖層?地圖圖層概念?
  • 地圖可以包含一個或多個圖層,每個圖層在每個級別都是由若干張圖塊組成的,它們覆蓋了地球的整個表面。例如您所看到包括街道、興趣點、學(xué)校、公園等內(nèi)容的地圖展現(xiàn)就是一個圖層,另外交通流量的展現(xiàn)也是通過圖層來實現(xiàn)的。

    目前百度地圖提供的圖層包括:

    TrafficLayer:交通流量圖層

    添加和移除圖層

    通過map.addTileLayer方法可向地圖添加圖層,例如下面代碼將顯示北京市的交通流量。

    var map = new BMap.Map("container"); // 創(chuàng)建地圖實例 var point = new BMap.Point(116.404, 39.915); // 創(chuàng)建點坐標(biāo) map.centerAndZoom(point, 15); // 初始化地圖,設(shè)置中心點坐標(biāo)和地圖級別 var traffic = new BMap.TrafficLayer(); // 創(chuàng)建交通流量圖層實例 map.addTileLayer(traffic); // 將圖層添加到地圖上

    若要從地圖上移除圖層,需要調(diào)用map.removeTileLayer方法。

    map.removeTileLayer(traffic); // 將圖層移除 自定義圖層地圖坐標(biāo)系

    在使用自定義圖層前,您需要了解百度地圖的地圖坐標(biāo)系,百度地圖坐標(biāo)系涉及:

    經(jīng)緯度球面坐標(biāo)系統(tǒng)

    墨卡托平面坐標(biāo)系統(tǒng)

    圖塊編號系統(tǒng)

    經(jīng)緯度是一種利用三維空間的球面來定義地球上的空間的球面坐標(biāo)系,它能夠標(biāo)示地球上任何一個位置。通過倫敦格林尼治天文臺原址的經(jīng)線為0度經(jīng)線,從0度經(jīng)線向東、向西各分180度。赤道為0度緯線,赤道以北的緯線稱為北緯、以南的稱為南緯。在百度地圖中,東經(jīng)和北緯用正數(shù)標(biāo)示,西經(jīng)和南緯用負(fù)數(shù)標(biāo)示。例如北京的位置大約是北緯39.9度,東經(jīng)116.4度,那么用數(shù)值標(biāo)示就是經(jīng)度116.6,緯度39.9。在百度地圖中,習(xí)慣經(jīng)度在前,緯度在后,例如:

    var point = new BMap.Point(116.404, 39.915); // 創(chuàng)建點坐標(biāo),經(jīng)度在前,緯度在后

    由于百度地圖是顯示在平面上的,因此在地圖內(nèi)部系統(tǒng)中需要將球面坐標(biāo)轉(zhuǎn)換為平面坐標(biāo),這個轉(zhuǎn)換過程稱為投影。百度地圖使用的是墨卡托投影。墨卡托平面坐標(biāo)如下圖所示,平面坐標(biāo)與經(jīng)緯度坐標(biāo)系的原點是重合的。

    ?

    百度地圖在每一個級別將整個地圖劃分成若干個圖塊,通過編號系統(tǒng)將整個圖塊整合在一起以便顯示完整的地圖。當(dāng)?shù)貓D被拖動或者級別發(fā)生變化時,地圖API將會根據(jù)平面坐標(biāo)計算出當(dāng)前視野內(nèi)所需顯示的圖塊的編號。

    百度地圖圖塊編號規(guī)則如下圖所示:

    ?

    從平面坐標(biāo)原點開始的右上方向的圖塊編號為0,0,以此類推。在最低的縮放級別(級別 1)中,整個地球由 4 張圖塊組成。隨著級別的增長,地圖所使用的圖塊個數(shù)也隨之增多。

    定義取圖規(guī)則

    通過TileLayer類開發(fā)者可以實現(xiàn)自定義圖層。其中,TileLayer實例的getTilesUrl方法需要實現(xiàn),用來告訴API取圖規(guī)則。getTilesUrl方法的參數(shù)包括tileCoord和zoom,其中tileCoord為圖塊的編號信息,zoom為圖塊的級別,每當(dāng)?shù)貓D需要顯示特定級別的特定位置的圖塊時就會自動調(diào)用此方法,并提供這兩個參數(shù)。使用者需要告知API特定編號和級別所對應(yīng)的圖塊的地址,這樣API就能正常顯示自定義的圖層了。

    添加和移除自定義圖層

    以下代碼在每個圖塊的所有縮放級別上顯示一個簡單的透明疊加層,使用浮動紅色小水滴表示圖塊的輪廓。

  • var?map?=?new?BMap.Map("container");? ?
  • //?創(chuàng)建地圖實例?var?point?=?new?BMap.Point(116.404,?39.915);? ?
  • //?創(chuàng)建點坐標(biāo)?map.centerAndZoom(point,15);? ?
  • //?初始化地圖,設(shè)置中心點坐標(biāo)和地圖級別? ?
  • var?tilelayer?=?new?BMap.TileLayer();? ?
  • //?創(chuàng)建地圖層實例?tilelayer.getTilesUrl=function(){? ?
  • //?設(shè)置圖塊路徑?return?"layer.gif";?};? ?
  • map.addTileLayer(tilelayer);? ?
  • //?將圖層添加到地圖上?工具?地圖工具概述?
  • 百度地圖提供了交互功能更為復(fù)雜的“工具”,它包括:

    PushpinTool:標(biāo)注工具。通過此工具用戶可在地圖任意區(qū)域添加標(biāo)注。

    DistanceTool:測距工具。通過此工具用戶可測量地圖上任意位置之間的距離。

    DragAndZoomTool:區(qū)域縮放工具。此工具將根據(jù)用戶拖拽繪制的矩形區(qū)域大小對地圖進(jìn)行放大或縮小操作。

    工具類在初始化時需要提供地圖實例參數(shù),以便使工具在該地圖上生效。您可以在地圖上添加多個工具,但同一時刻只能有一個工具處于開啟狀態(tài)。標(biāo)注工具和測距工具在完成一次操作后將自動退出開啟狀態(tài),而區(qū)域縮放工具可以自行配置是否自動關(guān)閉。

    向地圖添加工具

    在地圖正確初始化后,您可以創(chuàng)建工具實例。下面示例展示了如何向地圖添加一個標(biāo)注工具。

  • var?map?=?new?BMap.Map("container"); ?
  • ?map.centerAndZoom(new?BMap.Point(116.404,?39.915),?15); ?
  • ?var?myPushpin?=?new?BMap.PushpinTool(map); ?
  • ?//?創(chuàng)建標(biāo)注工具實例 ?
  • ?myPushpin.addEventListener("markend",?function(e){? ?
  • //?監(jiān)聽事件,提示標(biāo)注點坐標(biāo)信息?alert("您標(biāo)注的位置:"?+?e.marker.getPoint().lng?+?",?"?+?e.marker.getPoint().lat);?});? ?
  • myPushpin.open();? ?
  • //?開啟標(biāo)注工具?通過按鈕控制工具的開啟和關(guān)閉?
  • 工具類沒有提供控制其開啟和關(guān)閉的UI元素。您可以根據(jù)需要自己創(chuàng)建這些元素,把它們放置在地圖區(qū)域內(nèi)或者區(qū)域外均可。調(diào)用工具類的open和close可控制工具的開啟和關(guān)閉。

    首先初始化地圖并創(chuàng)建一個測距工具實例:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var myDis = new BMap.DistanceTool(map);

    接著我們創(chuàng)建兩個按鈕元素并為其添加點擊事件。

    <input type="button" value="開啟" οnclick="myDis.open()" /> <input type="button" value="關(guān)閉" οnclick="myDis.close()" /> 拉框放大工具

    一些工具類提供了可修改的配置參數(shù),您可參考API文檔來修改它們以便符合您的要求。

    本示例為區(qū)域縮放工具添加提示文字。

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var myDrag = new BMap.DragAndZoomTool(map, { followText : "拖拽鼠標(biāo)進(jìn)行操作" }); 服務(wù) 地圖服務(wù)概述

    地圖服務(wù)是指那些提供數(shù)據(jù)信息的接口,比如本地搜索、路線規(guī)劃等等。百度地圖API提供的服務(wù)有:

    LocalSearch:本地搜索,提供某一特定地區(qū)的位置搜索服務(wù),比如在北京市搜索“公園”。

    TransitRoute:公交導(dǎo)航,提供某一特定地區(qū)的公交出行方案的搜索服務(wù)。

    DrivingRoute:駕車導(dǎo)航,提供駕車出行方案的搜索服務(wù)。

    WalkingRoute:步行導(dǎo)航,提供步行出行方案的搜索服務(wù)。

    Geocoder:地址解析,提供將地址信息轉(zhuǎn)換為坐標(biāo)點信息的服務(wù)。

    LocalCity:本地城市,提供自動判斷您所在城市的服務(wù)。

    TrafficControl:實時路況控件,提供實時和歷史路況信息服務(wù)。

    搜索類的服務(wù)接口需要指定一個搜索范圍,否則接口將不能工作。

    本地搜索

    BMap.LocalSearch提供本地搜索服務(wù),在使用本地搜索時需要為其設(shè)置一個檢索區(qū)域,檢索區(qū)域可以是BMap.Map對象、BMap.Point對象或者是省市名稱(比如:"北京市")的字符串。BMap.LocalSearch構(gòu)造函數(shù)的第二個參數(shù)是可選的,您可以在其中指定結(jié)果的呈現(xiàn)。BMap.RenderOptions類提供了若干控制呈現(xiàn)的屬性,其中map指定了結(jié)果所展現(xiàn)的地圖實例,panel指定了結(jié)果列表的容器元素。

    下面這個示例展示了在北京市檢索天安門。搜索區(qū)域設(shè)置為地圖實例,并告知結(jié)果需要展現(xiàn)在地圖實例上。

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, { renderOptions:{map: map} }); local.search("天安門");

    另外,BMap.LocalSearch還提包含searchNearby和searchInBounds方法,為您提供周邊搜索和范圍搜索服務(wù)。

    配置搜索

    BMap.LocalSearch提供了若干配置方法,通過它們可以自定義搜索服務(wù)的行為以滿足您的需求。

    在下面的示例中,我們調(diào)整每頁顯示8個結(jié)果,并且根據(jù)結(jié)果點位置自動調(diào)整地圖視野,不顯示第一條結(jié)果的信息窗口:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch("北京市", { renderOptions: { map: map, autoViewport: true, selectFirstResult: false }, pageCapacity: 8 }); local.search("中關(guān)村"); 結(jié)果面板

    通過設(shè)置BMap.LocalSearchOptions.renderOptions.panel屬性,可以為本地搜索對象提供一個結(jié)果列表容器,搜索結(jié)果會自動添加到容器元素中。請看下面示例:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, { renderOptions: {map: map, panel: "results"} }); local.search("天安門"); 數(shù)據(jù)接口

    除了搜索結(jié)果會自動添加到地圖和列表外,您還可以通過數(shù)據(jù)接口獲得詳細(xì)的數(shù)據(jù)信息,結(jié)合地圖API您可以自行向地圖添加標(biāo)注和信息窗口。BMap.LocalSearch和BMap.LocalSearchOptions類提供了若干設(shè)置回調(diào)函數(shù)的接口,通過它們可得到搜索結(jié)果的數(shù)據(jù)信息。 例如,通過onSearchComplete回調(diào)函數(shù)參數(shù)可以獲得BMap.LocalResult對象實例,它包含了每一次搜索結(jié)果的數(shù)據(jù)信息。當(dāng)回調(diào)函數(shù)被執(zhí)行時,您可以使用BMap.LocalSearch.getStatus()方法來確認(rèn)搜索是否成功或者得到錯誤的詳細(xì)信息。

    在下面這個示例中,通過onSearchComplete回調(diào)函數(shù)得到第一頁每條結(jié)果的標(biāo)題和地址信息,并輸出到頁面上:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var options = { onSearchComplete: function(results){ if (local.getStatus() == BMAP_STATUS_SUCCESS){ // 判斷狀態(tài)是否正確 var s = ; for (var i = 0; i < results.getCurrentNumPois(); i ++){ s.push(results.getPoi(i).title + ", " + results.getPoi(i).address); } document.getElementById("log").innerHTML = s.join("
    "); } } }; var local = new BMap.LocalSearch(map, options); local.search("公園"); 周邊搜索

    通過周邊搜索服務(wù),您可以在某個地點附近進(jìn)行搜索,也可以在某一個特定結(jié)果點周圍進(jìn)行搜索。

    下面示例展示如何在前門附近搜索小吃:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var local = new BMap.LocalSearch(map, { renderOptions:{map: map, autoViewport: true} }); local.searchNearby("小吃", "前門"); 范圍搜索

    范圍搜索將根據(jù)您提供的視野范圍提供搜索結(jié)果。注意:當(dāng)搜索范圍過大時可能會出現(xiàn)無結(jié)果的情況。

    下面示例展示在當(dāng)前地圖視野范圍內(nèi)搜索銀行:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var local = new BMap.LocalSearch(map, { renderOptions:{map: map} }); local.searchInBounds("銀行", map.getBounds()); 公交導(dǎo)航

    BMap.TransitRoute類提供公交導(dǎo)航搜索服務(wù)。和本地搜索類似,在搜索之前需要指定搜索區(qū)域,注意公交導(dǎo)航的區(qū)域范圍只能是市,而不能是省。如果搜索區(qū)域為BMap.Map對象,路線結(jié)果會自動添加到地圖上。如果您提供了結(jié)果容器,相應(yīng)的路線描述也會展示在頁面上。

    下面示例展示了如何使用公交導(dǎo)航服務(wù):

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var transit = new BMap.TransitRoute(map, { renderOptions: {map: map} }); transit.search("王府井", "西單"); 結(jié)果面板

    您可以提供用于展示文字結(jié)果的容器元素,方案結(jié)果會自動在頁面中展現(xiàn):

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var transit = new BMap.TransitRoute(map, { renderOptions: {map: map, panel: "results"} }); transit.search("王府井", "西單"); 數(shù)據(jù)接口

    您可通過數(shù)據(jù)接口獲取詳細(xì)的公交方案信息。公交導(dǎo)航搜索結(jié)果用BMap.TransitRouteResult來表示,其中包含了若干公交出行方案(BMap.TransitRoutePlan)。每條出行方案由步行線路和公交線路組成。在起點到上車點之間、下車點到終點之間以及每個換乘站之間都會存在步行線路,如果上述的某兩點位置重合,那么其間的步行路線長度為0。

    在下面示例中,通過數(shù)據(jù)接口將第一條方案的路線添加到地圖上,并將所有方案的描述信息輸出到頁面上

  • var?map?=?new?BMap.Map("container");?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?12);?
  • var?transit?=?new?BMap.TransitRoute("北京市");? ?
  • transit.setSearchCompleteCallback(function(results){? ?
  • if?(transit.getStatus()?==?BMAP_STATUS_SUCCESS){? ?
  • var?firstPlan?=?results.getPlan(0);? ?
  • //?繪制步行線路? ?
  • for?(var?i?=?0;?i?<?firstPlan.getNumRoutes();?i?++){? ?
  • var?walk?=?firstPlan.getRoute(i);? ?
  • if?(walk.getDistance(false)?>?0){? ?
  • //?步行線路有可能為0? ?
  • map.addOverlay(new?BMap.Polyline(walk.getPoints(),?{lineColor:?"green"})); ?
  • ?}?}? ?
  • //?繪制公交線路?for?(i?=?0;?i?<?firstPlan.getNumLines();? ?
  • i?++){?var?line?=?firstPlan.getLine(i); ?
  • ?map.addOverlay(new?BMap.Polyline(line.getPoints()));?}? ?
  • //?輸出方案信息?var?s?=?;? ?
  • for?(i?=?0;?i?<?results.getNumPlans();?i?++){?s.push((i?+?1)?+?".?"?+?results.getPlan(i).getDescription());? ?
  • }?document.getElementById("log").innerHTML?=?s.join(" ?
  • ");?}?})?transit.search("中關(guān)村",?"國貿(mào)橋"); ?
  • ?駕車導(dǎo)航?
  • BMap.DrivingRoute提供駕車導(dǎo)航服務(wù)。與公交導(dǎo)航不同的是,駕車導(dǎo)航的搜索范圍可以設(shè)置為省。

    下面示例展示了如何使用駕車導(dǎo)航接口:

    var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 14); var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } }); driving.search("中關(guān)村", "天安門"); 結(jié)果面板

    下面示例中,我們提供了結(jié)果面板參數(shù),方案描述會自動展示到頁面上。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?14);? ?
  • var?driving?=?new?BMap.DrivingRoute(map,?{?
  • renderOptions:?{?map?:?map,?panel?:?"results",?autoViewport:?true?}?});? ?
  • driving.search("中關(guān)村",?"天安門");?數(shù)據(jù)接口?
  • 駕車導(dǎo)航服務(wù)也提供了豐富的數(shù)據(jù)接口,通過onSearchComplete回調(diào)函數(shù)可以得到BMap.DrivingRouteResult對象,它包含了駕車導(dǎo)航結(jié)果數(shù)據(jù)信息。結(jié)果會包含若干駕車方案(目前僅提供一條方案),每條方案中包含了若干駕車線路(如果導(dǎo)航方案只包含一個目的地,那么駕車線路的個數(shù)就為1,如果方案包含若干個目的地,則駕車線路的個數(shù)會大于1。目前API尚不支持多個目的地的駕車導(dǎo)航)。 每條駕車線路又會包含一系列的關(guān)鍵步驟(BMap.Step),關(guān)鍵步驟描述了具體駕車行駛方案,可通過BMap.Step.getDescription()方法獲得。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?14); ?
  • ?var?options?=?{?onSearchComplete:?function(results){? ?
  • if?(driving.getStatus()?==?BMAP_STATUS_SUCCESS){? ?
  • //?獲取第一條方案?var?plan?=?results.getPlan(0);? ?
  • //?獲取方案的駕車線路?var?route?=?plan.getRoute(0);? ?
  • //?獲取每個關(guān)鍵步驟,并輸出到頁面?var?s?=?; ?
  • for?(var?i?=?0;?i?<?route.getNumSteps();?i?++){? ?
  • var?step?=?route.getStep(i);? ?
  • s.push((i?+?1)?+?".?"?+?step.getDescription()); ?
  • ?}?document.getElementById("log").innerHTML?=?s.join(" ?
  • ");?}?}? ?
  • };? ?
  • var?driving?=?new?BMap.DrivingRoute(map,?options);? ?
  • driving.search("中關(guān)村",?"天安門");?
  • 步行導(dǎo)航接口在使用上與駕車導(dǎo)航一致,具體請參考API文檔。

    地理編碼

    地理編碼能夠?qū)⒌刂沸畔⑥D(zhuǎn)換為地理坐標(biāo)點信息。

    根據(jù)地址描述獲得坐標(biāo)

    百度地圖API提供Geocoder類進(jìn)行地址解析,您可以通過Geocoder.getPoint()方法來將一段地址描述轉(zhuǎn)換為一個坐標(biāo)。

    在下面的示例中,我們將獲得地址“北京市海淀區(qū)上地10街10號”的地理坐標(biāo)位置,并在這個位置上添加一個標(biāo)注。注意在調(diào)用Geocoder.getPoint()方法時您需要提供地址解析所在的城市(本例為“北京市”)。

  • var?map?=?new?BMap.Map("container");? ?
  • map.centerAndZoom(new?BMap.Point(116.404,?39.915),?11);? ?
  • //?創(chuàng)建地址解析器實例?var?myGeo?=?new?BMap.Geocoder();? ?
  • //?將地址解析結(jié)果顯示在地圖上,并調(diào)整地圖視野? ?
  • myGeo.getPoint("北京市海淀區(qū)上地10街10號",?function(point){? ?
  • if?(point)?{?map.centerAndZoom(point,?16);? ?
  • map.addOverlay(new?BMap.Marker(point));?}?},?"北京市");?
  • 百度地圖API官方資料站點:http://openapi.baidu.com/map/developer.html

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/sczw-maqing/p/3244130.html

    總結(jié)

    以上是生活随笔為你收集整理的百度地图API开发指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    成人福利在线播放 | 啪嗒啪嗒免费观看完整版 | 在线视频久 | 在线观看日韩精品视频 | 亚洲v精品| bayu135国产精品视频 | 久草9视频 | www.一区二区三区 | 91精品久久久久久粉嫩 | 五月天久久狠狠 | 国产精品二区在线观看 | 狠狠色噜噜狠狠狠 | www.久久久com | 国产专区精品视频 | 国产一级免费观看 | 日韩两性视频 | 97超级碰碰 | 久久精品亚洲综合专区 | 国产色视频网站2 | 九九热久久免费视频 | 精品乱码一区二区三四区 | 日韩av中文在线观看 | 日韩视频中文字幕在线观看 | av天天草 | 国产 欧美 日韩 | 黄色精品免费 | 国产一区视频在线观看免费 | 欧美一级日韩三级 | 99亚洲国产| 久久国产热视频 | 久久久精品国产一区二区三区 | 美女在线观看av | 色网址99| 国产精品久久久久久久免费大片 | 日韩在线一级 | 日韩特级黄色片 | 成年人免费在线播放 | 日韩在线视频免费观看 | www黄色大片 | 国产一区二区在线看 | 国产精品久久久久av | 国产色道| 黄色一级免费 | 免费在线观看日韩欧美 | 五月婷激情 | 午夜精品久久久久久久99热影院 | 91网站在线视频 | 毛片一区二区 | 久久久久久久久免费视频 | 国产亚洲成av人片在线观看桃 | 国产99久久久欧美黑人 | 中文字幕123区 | 亚洲人片在线观看 | 国产精品1区2区在线观看 | 亚洲国产操 | 国产资源在线免费观看 | 91人人爽人人爽人人精88v | 国产一区二区不卡视频 | 色婷婷激情网 | 中文av在线播放 | 在线激情网 | 欧美另类xxx | 中文字幕视频网 | 男女激情网址 | 99精品免费网 | 国产资源av | av色图天堂网 | 热久久国产 | 欧美激情精品久久久 | 国产精品一区在线观看你懂的 | 国产精品永久久久久久久久久 | 久久99精品国产91久久来源 | 亚洲国产天堂av | 成年人在线观看视频免费 | 色婷婷国产精品一区在线观看 | 国产亚洲永久域名 | av不卡中文字幕 | 国内外成人在线 | 51久久成人国产精品麻豆 | 亚洲免费在线视频 | 99 色| 国产美女黄网站免费 | 亚洲无人区小视频 | 亚洲精品视频免费在线观看 | 天天干天天玩天天操 | 免费电影一区二区三区 | 国产伦理久久精品久久久久_ | 国产精品99久久久久久人免费 | 在线国产一区 | 日韩免费b| av免费试看 | 久久首页 | 色婷婷视频在线观看 | 久久99在线视频 | 日本精品在线看 | 久久精品女人毛片国产 | 国产福利一区在线观看 | 欧美日韩综合在线 | 国产分类视频 | 久久三级视频 | 国产区在线| 在线观看午夜 | 国产一区二区在线影院 | 天天av资源 | 亚洲精品xxxx| 黄色电影网站在线观看 | 亚洲色图22p| 婷婷色综合网 | 亚洲成人蜜桃 | 欧美国产91 | 国产在线精品一区二区三区 | 国产小视频国产精品 | 国外av在线| 精品视频免费观看 | 粉嫩一区二区三区粉嫩91 | 中文av网 | 亚洲永久精品视频 | 麻豆视频免费网站 | av在线激情 | 日韩久久午夜一级啪啪 | 中文字幕一区二区三区精华液 | 成人免费 在线播放 | 蜜臀av免费一区二区三区 | 亚洲精品99久久久久久 | 国产拍揄自揄精品视频麻豆 | 人人cao| 国产一级二级三级在线观看 | 久久免费视频5 | 久草在线观看视频免费 | 激情小说网站亚洲综合网 | 干干日日 | 99久国产 | 欧美老人xxxx18 | 精品视频免费 | 欧美美女一级片 | 日韩精品在线免费播放 | 中文字幕在线影院 | 99色在线观看视频 | 色香蕉在线视频 | 伊人色播| 黄网站色视频免费观看 | 成全在线视频免费观看 | 婷婷去俺也去六月色 | 国产福利av | 在线免费av观看 | 成年人免费看片 | 激情五月视频 | 国产四虎在线 | 日韩精品专区在线影院重磅 | 欧美va在线观看 | 日韩伦理片一区二区三区 | 欧美一级电影在线观看 | 国产91大片 | 黄色免费网战 | 日韩久久视频 | 成片人卡1卡2卡3手机免费看 | 美女一二三区 | 欧美少妇xxxxxx | 天天操天天干天天操天天干 | 免费看日韩| 日本亚洲国产 | 视频福利在线 | 成人免费视频播放 | 久久这里| 91免费看片黄 | 成人av高清在线观看 | 天干啦夜天干天干在线线 | 欧美大片大全 | 狠狠色狠狠色合久久伊人 | 欧美一级片免费在线观看 | 欧美影片 | 欧美成人a在线 | 91日韩精品| 久久久久久福利 | 亚洲成人av一区 | 久久伊人八月婷婷综合激情 | www.夜夜草 | 久久国产精品视频观看 | 中文字幕在线观看视频一区 | 美女视频黄免费的久久 | 国内精品久久久久久 | 日韩av高清| 怡红院av| 午夜精品一区二区三区在线播放 | 久久综合精品国产一区二区三区 | 伊人影院av| 在线色亚洲 | 免费亚洲精品 | 婷婷av在线 | 97超碰在线久草超碰在线观看 | 亚洲高清在线 | 国产91精品久久久久久 | 夜夜澡人模人人添人人看 | 天天干一干 | 免费看特级毛片 | 91精品一区二区在线观看 | 在线小视频你懂得 | 久草精品视频在线看网站免费 | 在线视频成人 | 久久1电影院 | 久久久久国产成人精品亚洲午夜 | 欧美一级片在线免费观看 | 99视频在线免费观看 | 亚洲视频网站在线观看 | 日日夜夜网站 | 欧美日韩国产精品一区二区亚洲 | 人人艹人人 | 久久久久久久久久久影视 | 国产精品婷婷午夜在线观看 | 国产999精品久久久影片官网 | av在线短片 | 中文在线免费一区三区 | 亚洲精品中文字幕在线观看 | 麻豆视频在线播放 | 一区二区三区日韩在线 | 天天综合网在线 | 中文字幕亚洲精品日韩 | 成人超碰在线 | 国产精品一区二区在线观看免费 | 欧美资源在线观看 | 天天操天天干天天摸 | 精品一区二区影视 | 国产精品久久久久久婷婷天堂 | 99热手机在线观看 | 99久久国产免费,99久久国产免费大片 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 日韩精品一区二区三区丰满 | 手机在线永久免费观看av片 | www.888av| 黄污网站在线 | 国产免费观看久久 | a黄色大片| 成人免费在线视频观看 | 色综合久久66 | 久久久亚洲网站 | 久久婷婷一区 | 色综合久久综合 | 中文字幕在线观看免费 | 精品99在线视频 | 成人a视频 | 日日干天天操 | 国产在线2020 | 啪啪av在线 | 欧美激情视频一区二区三区免费 | 高清视频一区二区三区 | 九九亚洲精品 | 婷婷日日 | 婷婷激情在线 | 人人草人人做 | 国产日韩视频在线 | 福利一区在线视频 | 久久99热精品这里久久精品 | 亚洲国产精品第一区二区 | 99r精品视频在线观看 | 久久这里只有精品视频首页 | 午夜av在线播放 | 永久免费的啪啪网站免费观看浪潮 | 日韩二区三区在线观看 | 久久免费视频4 | 99久精品| 久久精品永久免费 | 91精品国 | 特黄免费av| 久久免费的精品国产v∧ | 中文字幕在线看视频 | 国产亚洲精品久久19p | 色婷婷 亚洲 | 成全在线视频免费观看 | 久久露脸国产精品 | 亚洲天堂在线观看完整版 | 91成人在线视频 | 免费人成在线观看网站 | 久久大片网站 | 天天操天天操天天操天天 | 免费看片成年人 | 一级大片在线观看 | 欧美日韩免费观看一区二区三区 | 欧美福利网址 | 在线亚洲高清视频 | 亚洲美女视频在线观看 | 午夜精品一区二区三区可下载 | 91亚洲综合| 国产精品乱码久久久久 | 国产一级视频在线 | 亚洲人视频在线 | 蜜臀av免费一区二区三区 | 国产精品久久久电影 | 欧美乱码精品一区 | 在线精品视频免费观看 | 亚洲人精品午夜 | 日韩av一区二区在线影视 | 免费在线观看av的网站 | www.狠狠 | 久久久久久久毛片 | 国内久久精品 | 二区精品视频 | 最新日韩在线 | 免费日韩 精品中文字幕视频在线 | 亚洲免费在线播放视频 | 国产精品无| 欧美大荫蒂xxx | 亚洲午夜精品一区 | av网站在线观看播放 | 三级小视频在线观看 | 亚洲区视频在线 | 天天骚夜夜操 | 国产精品视频地址 | 日韩高清成人 | 91网站在线视频 | 国产精品嫩草影视久久久 | 天天爽夜夜爽精品视频婷婷 | 一区中文字幕电影 | 久久一区91 | 国产精品一区二区电影 | 最新免费av在线 | 免费在线国产视频 | 色com| 成人av一区二区三区 | 日韩久久久久久久久久久久 | 久久久久在线观看 | 久久精品国产亚洲aⅴ | 亚洲欧美日韩国产一区二区 | 一区二区三区高清在线观看 | 日韩xxxbbb | 久久天天躁夜夜躁狠狠躁2022 | 天堂网一区二区 | 三级视频片 | 亚洲在线资源 | 亚洲天堂网在线视频 | 亚洲网久久 | 精品国产片 | 国产成人资源 | 手机看片午夜 | 成人黄色在线电影 | 色综合久久久久 | 亚a在线| 中文字幕在线播放一区二区 | 日本在线观看一区 | 亚洲日韩欧美一区二区在线 | 天天激情综合 | 久久久久久久久久久综合 | 国产无吗一区二区三区在线欢 | 在线视频99 | 一区二区三区精品在线视频 | 六月激情网| 99re6热在线精品视频 | 亚洲国产欧美在线人成大黄瓜 | 国产精品久久网 | 久久久久久久久亚洲精品 | 91一区啪爱嗯打偷拍欧美 | 91av成人| 粉嫩高清一区二区三区 | 九九热精品视频在线播放 | 国产一卡久久电影永久 | 亚洲乱码久久久 | 黄色电影在线免费观看 | 国产精品不卡一区 | 国产特级毛片aaaaaaa高清 | 美女视频黄免费 | 精品久久九九 | 天天色棕合合合合合合 | 精品国产一区二区三区男人吃奶 | 欧美大片在线观看一区 | 91久久国产露脸精品国产闺蜜 | av黄色免费看 | 一级成人在线 | 久久99视频免费 | 伊人成人激情 | 久久久久久免费 | 久久午夜精品视频 | 久久影院中文字幕 | 成人在线免费视频观看 | www.在线观看视频 | 蜜桃传媒一区二区 | 韩国av三级 | 亚洲精品18p| 日韩在线观看网站 | 最近免费中文字幕 | 久久国产热视频 | 国产欧美综合视频 | 91精品综合在线观看 | av片免费播放| 日韩在线视频免费看 | 国产精品一区二区av影院萌芽 | av在线等 | 成人免费看片98欧美 | 欧美极品一区二区三区 | 亚洲综合在线五月 | 992tv人人草| 中文字幕 婷婷 | 在线观看资源 | 伊人亚洲综合网 | 久草视频在线免费看 | 国产日韩视频在线 | 激情欧美在线观看 | 高清不卡一区二区三区 | 激情综合色综合久久综合 | 9在线观看免费高清完整版在线观看明 | 久久综合网色—综合色88 | 黄色一级大片在线免费看产 | www.久久色 | 婷婷综合国产 | 久久精品一区二区国产 | 97操操操 | 日本韩国中文字幕 | 久草在线91 | 国产中文a| 欧美成人在线免费观看 | 久久99偷拍视频 | 九色91在线 | 高清在线一区二区 | 欧美精品三级 | 国产精品久久久久久久久久不蜜月 | 欧美精品三级在线观看 | 国产一区二区在线免费观看 | 天天拍天天草 | 一区二区 不卡 | 成人在线视频网 | av高清一区| 天天舔天天搞 | 99国产视频 | 99精品在线免费在线观看 | 成人国产精品 | 亚洲视频第一页 | 91视频啊啊啊 | 中文字幕乱码在线播放 | 精品一区二区免费在线观看 | 天天射天天干天天爽 | 免费看久久久 | 久久国产精品二国产精品中国洋人 | 免费a视频在线观看 | 精品久久五月天 | 天天干天天天 | 天天综合网~永久入口 | 一区二区三区国产精品 | 国产精品免费在线观看视频 | 狠狠狠狠狠干 | 操一草 | 欧美精品一区二区在线观看 | 五月天电影免费在线观看一区 | 亚洲精品短视频 | 国产精品手机播放 | 美女很黄免费网站 | 国产精品久久久久永久免费 | 国产视频欧美视频 | av在线看网站 | 中文国产字幕在线观看 | 亚洲少妇久久 | 日韩在线网 | 免费日韩视 | 国产精品热| 日日干影院 | 日本精油按摩3 | 免费看麻豆 | 亚洲精品国偷自产在线99热 | 国产超碰97 | 日本精品视频在线播放 | 久草综合在线 | 日韩电影在线观看一区二区 | 蜜桃麻豆www久久囤产精品 | 在线 欧美 日韩 | 久久国内精品视频 | 免费观看一级 | 国产成人av一区二区三区在线观看 | 91精品电影| www黄| 亚洲精品视频在线播放 | 中文字幕频道 | 国产精品久久久久久久妇 | 色综合天天射 | 91av超碰 | 久久久久久久综合色一本 | 久草9视频 | 国产一区高清在线观看 | 久久综合九色九九 | 中文在线资源 | 91免费看黄 | 亚洲欧美乱综合图片区小说区 | 亚洲人片在线观看 | 99久久久久成人国产免费 | 国产黄色免费 | 免费在线国产视频 | 色综合天天狠天天透天天伊人 | 美女中文字幕 | 一区二区三区中文字幕在线 | av天天色 | 2019中文字幕网站 | 999在线精品 | 国内视频在线 | 一区二区三区在线播放 | 狠狠黄 | 狠狠躁夜夜躁人人爽超碰91 | 一级精品视频在线观看宜春院 | 麻豆国产精品视频 | 久久久久久国产精品免费 | 色婷婷国产精品一区在线观看 | 91国内在线| 中文字幕在线观看第一页 | 久久久国产精品久久久 | 日女人电影 | 国产欧美精品在线观看 | 99在线视频观看 | 日韩欧美视频一区 | 欧亚久久| 欧美日韩三级 | 精品福利在线视频 | 婷婷丁香av | av网站免费在线 | 超级碰碰碰碰 | 天天爽天天摸 | 日韩电影在线一区二区 | 中文字幕a在线 | 人人澡人人爽欧一区 | 久久综合久久久久88 | 免费成人黄色av | 玖玖国产精品视频 | 中文字幕一区在线 | 日本公妇在线观看高清 | 人人舔人人插 | 国产永久免费高清在线观看视频 | 大荫蒂欧美视频另类xxxx | 婷婷色在线播放 | 亚洲国产高清在线 | 最近的中文字幕大全免费版 | 91片网| 黄色的网站在线 | 狠狠88综合久久久久综合网 | 天堂久色| 黄色免费视频在线观看 | 亚洲人在线视频 | 高清av网| av在线等| 国产亚洲精品久久久久秋 | 色a网| 成人福利av | 久久久国产精品麻豆 | 欧美视频在线观看免费网址 | 91精品网站| 69久久久久久久 | 日韩精品中文字幕av | 久久久资源网 | av3级在线| 8090yy亚洲精品久久 | 日韩久久久久久久久久 | 91 在线视频 | 免费av网站在线看 | 97av视频| 激情欧美一区二区三区 | 一本一本久久a久久精品综合小说 | 九月婷婷色| 色婷婷狠狠干 | 色婷五月天 | 国产福利精品视频 | 欧美久久久久久久久 | 国产日韩中文在线 | 日日日视频 | 精品国产一区二区三区在线 | 最新国产在线 | 国产视频久久久久 | www.天天操 | 日韩影视大全 | 亚洲国产午夜 | 亚洲一区二区精品 | 天天插天天 | 91成人黄色 | 91精品视频一区 | 欧美日韩亚洲在线观看 | 一级黄色在线视频 | 国产精品av免费在线观看 | 国产原创在线观看 | 国产高清中文字幕 | 国产免费久久久久 | 色多多视频在线观看 | 日本爱爱片 | 久久久久久久久久久福利 | 中文资源在线播放 | 欧美日韩中 | 黄色电影在线免费观看 | 久草在线免费电影 | 91av电影网| 日批网站在线观看 | 97超碰在线视| 久久99精品国产99久久6尤 | 在线看片日韩 | 久久96国产精品久久99软件 | 久久艹精品 | av手机在线播放 | 韩国在线一区二区 | 在线视频18在线视频4k | av日韩在线网站 | 91九色国产 | 免费情缘 | 亚洲一级在线观看 | 人人狠狠综合久久亚洲 | 一区二区三区国产精品 | 欧美精品乱码久久久久 | 国产精品黑丝在线观看 | 国产永久免费高清在线观看视频 | 日日干夜夜爱 | 欧美一级片免费在线观看 | 天天天综合网 | 日韩午夜电影院 | 国内精品久久久久影院日本资源 | 日韩av视屏在线观看 | 日本夜夜草视频网站 | 久久久久久久久久久久亚洲 | 久久精品一区二区 | 亚洲精品视频在线观看视频 | 在线成人高清电影 | 91日本在线播放 | 亚洲精品视频在线观看网站 | 美女黄色网在线播放 | 国产亚洲字幕 | 午夜精品久久久久久久久久久久久久 | www.久久免费| 九九久久久久久久久激情 | 亚洲电影成人 | 九九九热| 亚洲精品在线免费观看视频 | 欧美一区成人 | 又黄又爽又无遮挡免费的网站 | 国产精品 中文字幕 亚洲 欧美 | 欧美孕妇与黑人孕交 | www色综合 | 黄污在线观看 | 久久精品一二区 | 永久免费毛片在线观看 | 在线91精品 | 国产在线精品区 | 久草久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产在线更新 | 久草网在线视频 | 丝袜美女在线观看 | 国产资源在线视频 | 亚洲高清视频在线播放 | 中文字幕在线播放av | 天天玩天天干 | 日韩欧美在线中文字幕 | 国产精品久久久久久久久久久免费看 | 开心激情五月网 | 日韩在线电影一区二区 | 波多野结衣电影一区二区三区 | 久久久受www免费人成 | 午夜神马福利 | 国产免费观看av | 久久久久久久久久网站 | 久久视频精品在线 | 黄色av一级片 | 中文字幕五区 | 成人免费视频网址 | 九九久久影院 | 91精品一区二区三区蜜臀 | 久久久久国产精品视频 | 手机在线看永久av片免费 | 欧美成人999 | 国产成人精品亚洲精品 | 欧美日韩激情网 | 欧美99热 | 99夜色| 国产精品岛国久久久久久久久红粉 | 久久成年人 | 成人黄视频 | 日本护士三级少妇三级999 | 韩日成人av | 久久99精品久久久久久三级 | 国产一级黄色片免费看 | 黄色免费看片网站 | 99久久精品国产欧美主题曲 | 国产黄a三级 | 亚洲成人黄 | 成人羞羞视频在线观看免费 | 国产91精品高清一区二区三区 | 国产视频久久 | 美女视频久久黄 | 黄色大片入口 | 成人免费在线看片 | 中文字幕在线看视频 | a级国产片 | 六月色婷婷 | 国产xvideos免费视频播放 | 亚洲精品在线免费播放 | 亚洲高清精品在线 | 欧美日韩91 | 久久精品黄 | 91av在线国产| 亚洲精品国产精品久久99热 | 人人爱人人添 | 欧美精品乱码久久久久久 | 一级欧美一级日韩 | 成人免费观看av | 欧美在线视频一区二区三区 | 亚洲国产美女久久久久 | 久久综合久色欧美综合狠狠 | 欧美激情另类 | 日韩免费电影网站 | 国产精品五月天 | 日韩狠狠操 | 999亚洲国产996395 | 久久理伦片 | 中文字幕第一页在线视频 | 99这里只有精品视频 | 又紧又大又爽精品一区二区 | 黄影院 | 九九九免费视频 | 久久国产精品成人免费浪潮 | 亚洲综合色站 | 国产亚洲婷婷免费 | 精品国内自产拍在线观看视频 | 国产精品18久久久久久久 | 中文字幕不卡在线88 | 99国产精品久久久久久久久久 | 美女视频黄,久久 | 亚洲激精日韩激精欧美精品 | 久久久午夜视频 | 国产亚洲va综合人人澡精品 | 国产成人99久久亚洲综合精品 | 狠狠综合久久 | 91在线观看欧美日韩 | 中文字幕亚洲在线观看 | 国产精品欧美久久久久三级 | av成人动漫在线观看 | 成人黄色在线视频 | 天天色天天射天天综合网 | 成人免费视频视频在线观看 免费 | 亚洲最新在线视频 | 国产高清免费在线观看 | 在线成人小视频 | av国产在线观看 | 国产亚洲视频在线观看 | 国产aa免费视频 | 欧美日韩一二三四区 | 激情综合国产 | 国产日本在线播放 | 欧美日韩视频在线观看一区二区 | 国产精品mm | 97国产精品亚洲精品 | 伊人伊成久久人综合网站 | 99热999| 国产成人一区二区三区在线观看 | 日日夜夜噜噜噜 | 一区二区三区在线免费 | 激情视频在线观看网址 | 中文字幕一区2区3区 | 99综合视频 | 视频在线观看99 | 色多多在线观看 | 国产精品久久久久久高潮 | www.天天成人国产电影 | 日韩在线电影一区二区 | 欧美精品久久久久久久久久白贞 | 日韩资源在线 | 久久色在线播放 | 精品国产电影一区 | 天天射天天干天天爽 | 国产精品一区二区三区四 | 波多野结衣一区二区三区中文字幕 | 久久精品亚洲一区二区三区观看模式 | 精品v亚洲v欧美v高清v | 91精品中文字幕 | 欧美日韩一区二区视频在线观看 | 久久精品视频在线看 | 天天射综合 | av福利资源 | 成人免费观看网站 | 99久免费精品视频在线观看 | 免费色网 | 亚洲欧美日韩中文在线 | 天堂视频中文在线 | 91手机视频在线 | 欧美精品九九99久久 | 日本中文乱码卡一卡二新区 | 国产精品电影在线 | 黄色a大片| 久久免费视频在线 | 欧美精品v国产精品v日韩精品 | 国产一级精品在线观看 | 国产亚洲欧洲 | 伊人日日干 | 亚洲精品播放 | 91天天操| 97碰视频| 九九免费精品 | 亚洲视频在线观看 | 久久一区二区免费视频 | 久久这里精品视频 | 日韩亚洲在线视频 | 久久久激情视频 | 国产99久久 | 毛片3| 美女视频黄色免费 | 国内精品久久久久久 | 国产亚洲精品中文字幕 | 精品视频999 | 亚洲精品资源 | 日韩精品一区二区三区免费观看视频 | 91精选在线观看 | 国产午夜精品一区二区三区在线观看 | 中文字幕一区在线观看视频 | 91精品国产三级a在线观看 | av播放在线| 丁香激情综合国产 | 国内成人精品2018免费看 | 中文字幕精品一区二区三区电影 | 成年人在线电影 | 国产97av | 91精品国产99久久久久 | 色婷婷88av视频一二三区 | 最近中文字幕在线中文高清版 | 久草青青在线观看 | 奇米网8888| 久久另类小说 | 丁香av在线 | 婷婷在线视频 | 天天干中文字幕 | 日韩手机视频 | 久久精品男人的天堂 | 丁香六月天 | 色噜噜噜 | 国产不卡精品 | 毛片.com| 亚洲精品资源 | 国产日韩三级 | sm免费xx网站 | 99久久99久国产黄毛片 | 91精品久久久久久久99蜜桃 | www.国产在线观看 | 免费看短| 91porny九色91啦中文 | 亚洲国产精品久久久久婷婷884 | 欧美性极品xxxx做受 | 五月天中文字幕mv在线 | 免费视频久久久久久久 | 亚洲在线精品 | 国产精品久久久久久麻豆一区 | 日韩资源视频 | 深爱激情久久 | 国产三级久久久 | 国产69精品久久久久9999apgf | 亚洲婷婷网 | 欧美一区二区三区免费观看 | 成人日韩av | 久久女同性恋中文字幕 | 91精品国产高清自在线观看 | 天天搞夜夜骑 | 久久韩国免费视频 | 美女网站在线播放 | 久久精品九色 | 亚洲国产精品视频在线观看 | 国产91全国探花系列在线播放 | 午夜私人影院 | 99久久电影 | 色综合天天在线 | 免费人人干| 天天色天天射天天干 | av资源网在线播放 | 日本丶国产丶欧美色综合 | 久久伊人色综合 | 69av网| av短片在线 | 精品亚洲欧美一区 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美a视频在线观看 | 99精品国产福利在线观看免费 | 黄色小说在线免费观看 | 日韩av一区二区三区 | 麻豆免费视频观看 | 在线观看91网站 | 揉bbb玩bbb少妇bbb | 色综合小说 | 婷婷久久一区 | 欧美日韩综合在线观看 | 4p变态网欧美系列 | 高清av在线免费观看 | 操操操人人 | 国产91免费在线 | 高潮久久久久久 | 中文字幕乱码电影 | 欧美日韩不卡在线观看 | 91香蕉视频污在线 | 国语麻豆| 蜜臀一区二区三区精品免费视频 | av超碰免费在线 | 91色亚洲 | 久草在线最新视频 | av理论电影 | 天堂中文在线播放 | 成人毛片久久 | avcom在线| 黄网站色欧美视频 | 欧美精品在线免费 | 超碰在线观看99 | 国产高清第一页 | 麻豆94tv免费版 | 99视频一区 | 高清精品久久 | 亚洲在线不卡 | 毛片无卡免费无播放器 | 亚洲精品免费在线观看视频 | 久久视频这里只有精品 | 国产精品99久久久久久武松影视 | 永久黄网站色视频免费观看w | 中文国产字幕在线观看 | 国产亚洲精品久久久久久网站 | 91自拍视频在线 | 一区二区视频在线看 | 成人av中文字幕在线观看 | 国产手机在线精品 | 久久免费视频网 | 国产人成免费视频 | 波多野结衣一区二区三区中文字幕 | 久久久九九 | 亚洲五月六月 | 日韩精品视频免费 | 毛片激情永久免费 | 亚洲小视频在线 | 国产爽妇网 | av亚洲产国偷v产偷v自拍小说 | 国产亚洲精品久久久久久大师 | 国产裸体视频网站 | 天天干天天操天天 | 国产精品成人av久久 | 高清中文字幕av | 五月天色丁香 | 婷婷在线播放 | 成人精品视频久久久久 | 伊人色播| 97av精品 | 91九色蝌蚪国产 | 久久99中文字幕 | 一级黄色片在线免费看 | 伊人资源站 | 久久精品99视频 | 久久ww | 美女网站色免费 | 在线看片视频 | 精品在线视频一区 | 日本aaaa级毛片在线看 | 欧美日韩国产精品一区二区 | 国产精品18久久久久久久 | 999精品视频| 欧美狠狠色 | 久久视频这里只有精品 | 久久只有精品 | 国产精品毛片完整版 | 欧美午夜性 | 激情丁香 | 在线看国产 | 久久久国产精品一区二区三区 | 亚洲一级影院 | 中文字幕 国产 一区 | 亚洲成人第一区 | 中字幕视频在线永久在线观看免费 | 国产精品一区二区久久精品爱涩 | 久久精品草 | 五月精品 | 色是在线视频 | 91亚洲精品国偷拍 | av大全在线观看 | 人人爽人人澡 | 天天爽综合网 | 久久久久久久久国产 | 国产美女主播精品一区二区三区 | 探花在线观看 | 91亚洲综合 | 日韩国产欧美在线播放 | av亚洲产国偷v产偷v自拍小说 | 国产裸体永久免费视频网站 | 97超碰国产精品女人人人爽 | 狠狠干干| 九九视频在线播放 | 国产精品麻豆99久久久久久 | 99夜色 | 天天射射天天 | 深爱激情五月综合 | 亚洲精品综合欧美二区变态 | 久久精品综合一区 | 欧美日韩久久不卡 | 国产va饥渴难耐女保洁员在线观看 | 天天插天天干 | 日本激情视频中文字幕 | 黄色资源在线观看 | 在线免费视频你懂的 | 99在线精品免费视频九九视 | 婷婷伊人综合 | 精品免费久久久久 | 日本一区二区免费在线观看 | 999超碰 | 1024久久 | 天天爽夜夜爽精品视频婷婷 | 日日干干 | 久久99精品久久久久婷婷 | 一区二区 不卡 | 色吊丝在线永久观看最新版本 | 夜夜操综合网 | 欧美激情精品久久久久久变态 | 黄色毛片视频免费观看中文 | 久久国产精品一国产精品 |