一、百度地圖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.怎麼獲得我想查找的地理位置的經度和緯度?
http://dev.baidu.com/wiki/static/map/API/tool/creatMap/
2.哪裏有學習百度地圖API的示例代碼?
http://dev.baidu.com/wiki/static/map/API/examples/index.html
來源:http://blog.csdn.net/xiazdong/article/details/7381142