1. 程式人生 > >百度地圖API學習總結

百度地圖API學習總結

               

一、百度地圖API介紹

百度地圖API是可以給開發人員呼叫的開放API,我們可以用Javascript語言進行呼叫;

聽起來API這個概念很抽象,初學者想:“百度的API,我們怎麼能呼叫?”,其實不是這樣,我們通過一個URL地址進行引用,然後就可以呼叫他的API;

不需要Web伺服器,只需要一個瀏覽器就能夠使用百度地圖API;

二、呼叫API的基本檔案格式

以下為開發百度地圖API的最基礎程式碼:

<html> <head>  <!--引用百度地圖-->  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"
>
</script>  <title>   如何呼叫API  </title>    <!--  設計樣式    container容器:佔50%大小  -->  <style type="text/css">  #container{   width:50%;   height:50%;   }  </style> </head> <body>  <div id="container"></div>  <script type="text/javascript">   var map = new BMap.Map("container");//在container容器中建立一個地圖,引數container為div的id屬性;   var point = new BMap.Point(500,500);//定位   map.centerAndZoom(point,15);    //將point移到瀏覽器中心,並且地圖大小調整為15;      <!--以後只需要在此處新增程式碼即可-->
  
</script> </body></html>

三、常用技術

1.建立地圖: var map = new BMap.Map("divid");

2.建立座標點:var point = new BMap.Point("經度","緯度");

3.設定檢視中心點:map.centerAndZoom(point,size);

4.啟用滾輪調整大小功能:map.enableScrollWheelZoom();

5.新增控制元件:map.addControl(new BMap.Xxx());

6.新增覆蓋物:map.addOverlay();

控制元件介紹

1.NavigationControl:縮放地圖的控制元件,預設在左上角;

2.OverviewMapControl:地圖的縮圖的控制元件,預設在右下方;

3.ScaleControl:地圖顯示比例的控制元件,預設在左下方;

4.MapTypeControl:地圖型別控制元件,預設在右上方;

如下圖所示:

 

map.addControl()方法新增控制元件;

程式碼示例:

<html> <head>  <!--引用百度地圖-->  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>  <title>   控制元件使用  </title>    <!--  設計樣式    container容器:佔50%大小  -->  <style type="text/css">  #container{   width:50%;   height:50%;   }  </style> </head> <body>  <div id="container"></div>  <script type="text/javascript">   var map = new BMap.Map("container");//在container容器中建立一個地圖,引數container為div的id屬性;   var point = new BMap.Point(500,500);//定位   map.centerAndZoom(point,15);    //將point移到瀏覽器中心,並且地圖大小調整為15;   map.addControl(new BMap.NavigationControl());   map.addControl(new BMap.MapTypeControl());   map.addControl(new BMap.ScaleControl());   map.addControl(new BMap.OverviewMapControl());  </script> </body></html>

覆蓋物介紹

覆蓋物就是覆蓋在地圖上的某個事物;

1.標註:Marker

 

(1)在point處新增標註:var marker = new BMap.Marker(point);     

(2)新增覆蓋物:map.addOverlay(marker);

(3)啟用標註的拖拽功能:marker.enableDragging();

(4)為標註新增事件:marker.addEventListener("名稱",function(){

    //點選標註後的事件

});

(5)刪除覆蓋物:map.removeOverlay(marker);

(6)銷燬標註:marker.dispose();

2.資訊視窗:InfoWindow

 

(1)在某個特定的位置建立一個資訊視窗:var infowindow = new BMap.InfoWindow("內容",{width:250,height:100,title:"hello"});

(2)在地圖中央開啟資訊視窗:map.openInfoWindow(infoWindow,map.getCenter());

3.折線:Polyline

(1)var polyline = new BMap.Polyline([new BMap.Point(X1,Y1),new BMap.Point(X2,Y2),new BMap.Point(X3,Y3)],{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});

(2)map.addOverlay(polyline);

<html> <head>  <!--引用百度地圖-->  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>  <title>   如何呼叫API  </title>    <!--  設計樣式    container容器:佔50%大小  -->  <style type="text/css">  #container{   width:50%;   height:50%;   }  </style> </head> <body>  <div id="container"></div>  <script type="text/javascript">   var map = new BMap.Map("container");//在container容器中建立一個地圖,引數container為div的id屬性;   var point = new BMap.Point(116.404, 39.915);//定位   map.centerAndZoom(point,15);    //將point移到瀏覽器中心,並且地圖大小調整為15;      //標註   var marker = new BMap.Marker(point);   map.addOverlay(marker);   marker.addEventListener("click",function()//點選標註時出發事件    alert("您點選了標註");   });   marker.enableDragging(); //標註可拖拽      //建立資訊視窗   var opts = {       width : 250,     // 資訊視窗寬度       height: 100,     // 資訊視窗高度       title : "Hello"  // 資訊視窗標題     }     var infoWindow = new BMap.InfoWindow("World", opts);  // 建立資訊視窗物件     map.openInfoWindow(infoWindow, map.getCenter());      // 開啟資訊視窗       //折線   var polyline = new BMap.Polyline([          new BMap.Point(116.399, 39.910),         new BMap.Point(116.405, 39.920),       new BMap.Point(117.321,40.321)         ],         {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5//藍色、寬度為6   );     map.addOverlay(polyline);       </script> </body></html>

四、常見問題

1.怎麼獲得我想查詢的地理位置的經度和緯度?

2.哪裡有學習百度地圖API的示例程式碼?