百度地圖(16)-矢量圖標


1. 百度地圖的矢量圖標,其實還是使用 BMap.Marker 進行處理的, 只不過

這個Marker的icon 是以矢量的方式進行繪制。使用了BMap.Symbol 函數。

 

2. 代碼

  1 function addVectorSymbol() {
  2   var point = new BMap.Point(116.473008,39.916605);
  3   map.centerAndZoom(point, 16);
  4   map.enableScrollWheelZoom(true);
  5 
  6 //設置marker圖標為人字形
  7   vectorPeoplePath = new BMap.Marker(point, {
  8     // 設置自定義path路徑25325l99
  9     icon: new BMap.Symbol('m0.5,48.67105l106.55963,0m-53.03642,45.73853l52.06349,51.09042m-52.06349,-51.57716l-48.65731,51.57716m48.41391,-112.39955l0,60.82238m16.17517,-77.24814c0,8.93415 -7.24208,16.17461 -16.17517,16.17461c-8.93307,0 -16.17464,-7.24046 -16.17464,-16.17461c0,-8.93309 7.24156,-16.1747 16.17464,-16.1747c8.93309,0 16.17517,7.24161 16.17517,16.1747z', {
 10       rotation: 0,//順時針旋轉40度
 11       fillColor: 'green',
 12       fillOpacity: 0.8,
 13       strokeColor: '#555',
 14       strokeWeight: 3//線寬
 15     })
 16   });
 17 
 18   vectorFCArrow = new BMap.Marker(new BMap.Point(point.lng-0.01,point.lat), {
 19     // 初始化方向向上的閉合箭頭
 20     icon: new BMap.Symbol(BMap_Symbol_SHAPE_FORWARD_CLOSED_ARROW, {
 21       scale: 5,
 22       strokeWeight: 1,
 23       rotation: 0,//順時針旋轉30度
 24       fillColor: 'red',
 25       fillOpacity: 0.8
 26     })
 27   });
 28 
 29   vectorBCArrow = new BMap.Marker(new BMap.Point(point.lng+0.02 , point.lat), {
 30     // 初始化方向向下的閉合箭頭
 31     icon: new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_CLOSED_ARROW, {
 32       scale: 5,
 33       strokeWeight: 1,
 34       rotation: 180,
 35       fillColor: 'gold',
 36       fillOpacity: 0.8
 37     })
 38   });
 39 
 40   vectorFOArrow = new BMap.Marker(new BMap.Point(point.lng +0.03, point.lat), {
 41     //  初始化方向向上的開放式箭頭
 42     icon: new BMap.Symbol(BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW, {
 43       scale: 5,
 44       strokeWeight: 1,
 45       rotation: 0,
 46       fillColor: "pink",
 47       fillOpacity: 0.8
 48     })
 49   });
 50 
 51   vectorBOArrow = new BMap.Marker(new BMap.Point(point.lng+0.04,point.lat), {
 52     // 初始化方向向下的開放式箭頭
 53     icon: new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, {
 54       scale: 5,
 55       strokeWeight: 1,
 56       rotation: 90,
 57       fillColor: 'lightgreen',
 58       fillOpacity: 0.8
 59     })
 60   });
 61 
 62 //設置marker圖標為水滴
 63   vectorMarker = new BMap.Marker(new BMap.Point(point.lng,point.lat-0.03), {
 64     // 指定Marker的icon屬性為Symbol
 65     icon: new BMap.Symbol(BMap_Symbol_SHAPE_POINT, {
 66       scale: 2,//圖標縮放大小
 67       fillColor: "orange",//填充顏色
 68       fillOpacity: 0.8//填充透明度
 69     })
 70   });
 71 
 72 //設置marker圖標為飛機
 73   vectorPlane = new BMap.Marker(new BMap.Point(point.lng+0.04,point.lat-0.03), {
 74     // 初始化小飛機Symbol
 75     icon: new BMap.Symbol(BMap_Symbol_SHAPE_PLANE, {
 76       scale: 3,
 77       rotation: 0
 78     })
 79   });
 80 
 81 
 82   vectorCLOCK = new BMap.Marker(new BMap.Point(point.lng+0.01,point.lat-0.03), {
 83     // 初始化鬧鍾形狀的symbol
 84     icon: new BMap.Symbol(BMap_Symbol_SHAPE_CLOCK, {
 85       scale: 2,
 86       strokeWeight: 1,
 87       fillColor: 'blue',
 88       fillOpacity: 0.8
 89     })
 90   });
 91 
 92   vectorWARNING = new BMap.Marker(new BMap.Point(point.lng+0.02,point.lat-0.03), {
 93     // 初始化警告標志的symbol
 94     icon: new BMap.Symbol(BMap_Symbol_SHAPE_WARNING, {
 95       scale: 2,
 96       strokeWeight: 1,
 97       fillColor: 'pink',
 98       fillOpacity: 0.8
 99     })
100   });
101 
102   vectorStar = new BMap.Marker(new BMap.Point(point.lng+0.03,point.lat-0.03), {
103     // 初始化五角星symbol
104     icon: new BMap.Symbol(BMap_Symbol_SHAPE_STAR, {
105       scale: 5,
106       fillColor: "pink",
107       fillOpacity: 0.8
108     })
109   });
110   map.addOverlay(vectorWARNING);
111   map.addOverlay(vectorPlane);
112   map.addOverlay(vectorFCArrow);
113   map.addOverlay(vectorBCArrow);
114   map.addOverlay(vectorFOArrow);
115   map.addOverlay(vectorBOArrow);
116   map.addOverlay(vectorStar);
117   map.addOverlay(vectorMarker);
118   map.addOverlay(vectorCLOCK);
119   map.addOverlay(vectorPeoplePath);
120   map.setViewport({center:new BMap.Point(116.501035,39.897538),zoom:14})
121 
122   show();
123 }

 

function show(){
  vectorWARNING.show();
  vectorPlane.show();
  vectorFCArrow.show();
  vectorBCArrow.show();
  vectorFOArrow.show();
  vectorBOArrow.show();
  vectorStar.show();
  vectorCLOCK.show();
  vectorMarker.show();
  vectorPeoplePath.show();
}

function hide(){
  vectorWARNING.hide();
  vectorPlane.hide();
  vectorFCArrow.hide();
  vectorBCArrow.hide();
  vectorFOArrow.hide();
  vectorBOArrow.hide();
  vectorStar.hide();
  vectorCLOCK.hide();
  vectorMarker.hide();
  vectorPeoplePath.hide();
}

 

3. 頁面顯示

 

 

4. 參考代碼

https://github.com/WhatGIS/bdMap

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM