1. 程式人生 > >百度地圖api-查詢周邊

百度地圖api-查詢周邊

circle htm idt var result 靜態頁 tid cli ng-

利用百度地圖api接口實現周邊配套設施查詢

1. 靜態頁面部分:

 1               <div class="row">
 2                             <aside class="profile-nav col-lg-3">
 3                                 <section class="panel">
 4                                     <ul xsts-tab class="nav nav-pills nav-stacked"
id="panel"> 5 <li class="active" ng-click="baiduMapBack()"><a><i class="icon-location-arrow"></i>樓盤位置</a></li> 6 <li ng-click="baiduMapSearch(‘公交‘)"><a><i class="icon-truck"
></i>交通設施</a></li> 7 <li ng-click="baiduMapSearch(‘醫院‘)"><a><i class="icon-plus"></i>醫療機構</a></li> 8 <li ng-click="baiduMapSearch(‘超市‘)"><a><i class="icon-shopping-cart"
></i>商場超市</a></li> 9 <li ng-click="baiduMapSearch(‘學校‘)"><a><i class="icon-smile"></i>教育機構</a></li> 10 <li ng-click="baiduMapSearch(‘餐廳‘)"><a><i class="icon-food"></i>餐飲休閑</a></li> 11 <li ng-click="baiduMapSearch(‘公園‘)"><a><i class="icon-leaf"></i>公園景點</a></li> 12 </ul> 13 </section> 14 </aside> 15 <aside class="profile-info col-lg-9 dictionaryMapContent"> 16 <div id="dictionaryMap"></div> 17 <div id="r-result"> 18 <input type="text" id="suggestId" class="form-control" placeholder="搜索您想要的位置"> 19 </div> 20 <div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div> 21 </aside> 22 </div>

2. js部分:

 1           // 初始配置
 2                 var map = new BMap.Map("dictionaryMap"), pointAll = ($scope.hdetail.coordinate).split(‘,‘),
 3                     lat = parseFloat(pointAll[0]), lng = parseFloat(pointAll[1]), point = new BMap.Point(lat,lng);
 4                 map.centerAndZoom(point, 15);
 5                 // 添加控件
 6                 map.addControl(new BMap.NavigationControl());
 7                 // 範圍區域
 8                 var circle = new BMap.Circle(point,1000,{fillColor:"#ccc", strokeWeight: 1 ,fillOpacity: 0.2, strokeOpacity: 0.2});
 9                 map.addOverlay(circle);
10                 var local =  new BMap.LocalSearch(map, {renderOptions: {map: map, autoViewport: false}});
11                 // 房源位置
12                 // var myIcon = new BMap.Icon("img/mappiont.png", new BMap.Size(30,37));
13                 // var marker = new BMap.Marker(point,{icon:myIcon});
14                 var marker = new BMap.Marker(point);
15                 map.addOverlay(marker);
16                 //  跳動標註
17                 marker.setAnimation(BMAP_ANIMATION_BOUNCE);
18                 $scope.baiduMapSearch = function(w){
19                     local.searchNearby(w,point,1000);
20                 };
21                 // 樓盤定位
22                 $scope.baiduMapBack = function(){
23                     map.reset();
24                     local.searchNearby(‘‘,point,1000);
25                 };
26                 // 輸入框搜索
27                 function G(id) {
28                     return document.getElementById(id);
29                 }
30                 var ac = new BMap.Autocomplete({"input":"suggestId","location":map});
31                 ac.addEventListener("onhighlight",function(e){
32                     var str = "";
33                     var _value = e.fromitem.value;
34                     var value = "";
35                     if (e.fromitem.index > -1) {
36                         value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
37                     }
38                     str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
39                     value = "";
40                     if (e.toitem.index > -1) {
41                         _value = e.toitem.value;
42                         value = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
43                     }
44                     str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
45                     G("searchResultPanel").innerHTML = str;
46                 });
47                 var myValue;
48                 ac.addEventListener("onconfirm",function(e){
49                     var _value = e.item.value;
50                     myValue = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
51                     G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
52                     setPlace();
53                 });
54                 function setPlace(){
55                     function myFun(){
56                         var pp = local.getResults().getPoi(0).point;
57                         map.centerAndZoom(pp, 18);
58                         map.addOverlay(new BMap.Marker(pp));
59                     }
60                     var local = new BMap.LocalSearch(map,{
61                         onSearchComplete: myFun
62                     });
63                     local.search(myValue);
64                 }

3. 效果:

技術分享

百度地圖api-查詢周邊