最近由於工做須要,領導要我將51地圖API開發的一個應用遷移到百度地圖,或者說用百度地圖API進行重寫,實現一樣的功能。我先是把現有的這個51地圖的應用瞭解了一下,而後就試着用百度地圖作一些demo,最後就本身動手參照原來的應用的功能,用百度地圖實現了一下。下面就給你們介紹一下,百度地圖API開發的一些基礎技術。javascript
首先,百度地圖API的官方首頁是:http://dev.baidu.com/wiki/static/index.htm,上面介紹了不少詳細的信息,各類版本的API,成功案例,還有在線幫助文檔,固然了這些文檔也能夠下載下來離線查閱。在web中使用百度地圖API進行開發,主要是用到百度地圖JavaScript版,也就是用JS進行開發。百度地圖封裝了具體實現的細節,咱們做爲程序員,只要按照百度地圖的API說明文檔,結合實例代碼,進行開發就能夠了。html
首先看一下百度地圖的Hello World。java
操做步驟:程序員
一、創建一個HTML頁面,導入百度地圖API的JSweb
操做步驟:數組
一、在頁面head部分,導入百度座標轉換接口APIoracle
經過x跟y的數值,返回結果座標是經過base64加密的(讀者能夠本身試一試)。
附一個asp的動態讀取數據庫並加載到baidu Map的簡單例子。
<div id="container"> <div id="leftBar" class="leftBar"> <center><h4>當前在線單位<font color=red>(<%=rs_kf(0)%>)</font></h4></center> <script src="http://www.yz91.net/Map2/kefu/kf/index.asp"></script> </div> <div id="centerBar" class="centerBar"> <div id="mapDiv" style="width:100%; height:100%;"></div> </div> <div id="rightBar" class="rightBar"> <div> <center><h4>最新招聘信息</h4></center> <ul id="demo1" style="list-style:none;width:100%;margin-left:5px;padding:0;"> <% Set conn1 = Server.CreateObject("ADODB.Connection") constr1="Provider=MSDAORA.1;Password=xxx;User ID=yyy;Data Source=orcl;Persist Security Info=True" conn1.Open constr1 Dim rs_oracle,strSql_oracle strSql_oracle="select acb200,acb210,AAB004,ACB216,ACB221||'-'||ACB222,ACB211,ACB212,ACB213,ACB21r,AAC011,NVL(ACC034,ACC214) DY,AAE004,AAE005,aae036,substr(aae020,0,3) from v_cb2021 where substr(aae020,0,3)='xxx'or substr(aae020,0,3)='xxx' or substr(aae020,0,3)='xxx' or substr(aae020,0,3)='xxx' order by aae030 desc" set rs_oracle=conn1.Execute(strSql_oracle) %> <% Do While Not rs_oracle.Eof %> <% url="http://www.yz91.net/Company/JobDeital/"& rs_oracle("ACB200") %> <li> <a href="<%=url%>" target="_blank"><font color="#0066ff"><%=rs_oracle("AAB004")%></font> <font color=black><%=rs_oracle("ACB216")%></font></a> </li> <% rs_oracle.MoveNext Loop %> </ul> </div> <div id="demo2" style="width:0px;"></div> </div> </div>
js部分:
<script type="text/javascript"> <!--全局變量start--> var map;//地圖容器 var circle;//圓形區域 var centerMaker;//圓形中心點覆蓋物 var centerMakerIcon ;//圓形中心點覆蓋物圖片 var point;//座標原點 var datas=[];//數據源數組 var myIcon;//圖標 <!--全局變量end--> //雙擊後從新定位 function dblClickCallBack(Epoint){ delCircleOverlay(); point = Epoint; addOverlay(point,$("theradius").value); addCenterMarker(point); map.setCenter(point); } //添加覆蓋物 function addOverlay(point,radius){ circle = new BMap.Circle(point,radius,{fillColor:"#123456", strokeColor:"#FF0000", strokeWeight: 2 ,fillOpacity: 0.1, strokeOpacity: 0.3}); map.addOverlay(circle); } //添加中心覆蓋物 function addCenterMarker(point){ centerMaker = new BMap.Marker(point,{icon: centerMakerIcon}); map.addOverlay(centerMaker); } //刪除覆蓋物 function delCircleOverlay(){ map.removeOverlay(circle); map.removeOverlay(centerMaker); } //經過ip獲取地址 function myFun(result){ var cityName = result.name; //map.setCenter(cityName); point = map.getCenter(); } //初始化地圖 function initMap(){ map=new BMap.Map("mapDiv"); p1=119.41372; p2=32.39425; point=new BMap.Point(p1,p2); map.centerAndZoom(point,15); map.enableScrollWheelZoom();//支持鼠標滾輪 map.enableKeyboard();//支持鍵盤操做 map.disableDoubleClickZoom();//禁用雙擊放大 map.setDraggingCursor("crosshair");//設置拖拽地圖時的鼠標指針樣式 var opts = {anchor: BMAP_ANCHOR_TOP_RIGHT, offset: new BMap.Size(10, 10)}; map.addControl(new BMap.NavigationControl(opts)); //添加地圖導航面板 centerMakerIcon = new BMap.Icon("images/poin01.png",new BMap.Size(24, 24)); myIcon = new BMap.Icon("images/centerPoi.gif",new BMap.Size(24, 24)); var myCity = new BMap.LocalCity(); //ip定位 myCity.get(myFun); map.centerAndZoom(point,15); delCircleOverlay(); addOverlay(point,1000);//初始化半徑爲1公里的圓 addCenterMarker(point);//添加圓心中央的圖片 initData();//初始化地圖數據 map.addEventListener("dblclick",function(e){ dblClickCallBack(e.point); }); $("theradius").οnchange=function(){ dblClickCallBack(point); $("spanRadius").innerHTML=$("theradius").value/1000; } } function initData(){ <% Dim conn,strConn Set conn=Server.CreateObject("ADODB.Connection") strConn="Provider=MSDAORA.1;Password=xxx;User ID=yyy;Data Source=orcl;Persist Security Info=True" conn.Open strConn Dim rs,strSql strSql="select * from V_MAPZP where 1=1" if(request("AAB301")<>"") then p1=Split(trim(request("AAB301")),",")(0) p2=Split(trim(request("AAB301")),",")(1) qy=Split(trim(request("AAB301")),",")(2) strSql=strSql+" and ACB200 like "+"'%"&qy&"%'" end if if(request("ZPGW")<>"") then gw=trim(request("ZPGW")) strSql=strSql+" and ZPGW like "+"'%"&gw&"%'" end if set rs=conn.Execute(strSql) %> var p1="<%=p1%>"; var p2="<%=p2%>"; var point; if(p1==0&&p2==0){ point=new BMap.Point(119.41372,32.39425); }else{ point=new BMap.Point(p1/100000,p2/100000); } //map.centerAndZoom(point,15); //delCircleOverlay(); //addOverlay(point,1000);//初始化半徑爲1公里的圓 //addCenterMarker(point);//添加圓心中央的圖片 var myCity = new BMap.LocalCity(); //ip定位 myCity.get(myFun); map.centerAndZoom(point,15); delCircleOverlay(); addOverlay(point,1000);//初始化半徑爲1公里的圓 addCenterMarker(point);//添加圓心中央的圖片 <% i=0 Do While Not rs.Eof %> var ggPoint= new BMap.Point(<%=rs("LNG")%>/100000,<%=rs("LAT")%>/100000); BMap.Convertor.translate(ggPoint,2,function(p){ var marker = new BMap.Marker(p,{icon: myIcon}); map.addOverlay(marker); marker.setLabel(new BMap.Label("<%=rs("AAB004")%>",{offset:new BMap.Size(25,2)})); var opts = { width : 260, // 信息窗口寬度 height: 0, // 信息窗口高度 title : "<b>企業信息</b>" // 信息窗口標題 } var html="<div align=left>名稱:<%=rs("AAB004")%></div>"; var html=html+"<div align=left>聯繫人:<%=rs("AAE004")%> 電話:<%=rs("AAE005")%></div>"; var html=html+"<div align=left>地址:<%=rs("AAE006")%></div>"; var html=html+"<div align=center>"; var html=html+"<a class=ORG href=http://www.www.com"+<%=right(rs("ACB200"),14)%>+" target=_blank>招聘信息</a></div>"; var infoWindows = new BMap.InfoWindow(html, opts); // 建立信息窗口對象 marker.addEventListener("click", function(){ this.openInfoWindow(infoWindows); }); }); <% i= i + 1 rs.MoveNext Loop %> }