Commit 5b095e2d3cc318dba8bcc4d61283f908f9b81441
1 parent
f1105655
地图
Showing
4 changed files
with
122 additions
and
18 deletions
src/components/VMap.vue
@@ -15,9 +15,9 @@ export default { | @@ -15,9 +15,9 @@ export default { | ||
15 | methods:{ | 15 | methods:{ |
16 | drawMap(){ | 16 | drawMap(){ |
17 | let data = [ | 17 | let data = [ |
18 | - {Name:'万达停车场1',lonId:'111.742579',latId:'40.818675',status:0,free:30,total:1000}, | ||
19 | - {Name:'万达停车场2',lonId:'111.622579',latId:'40.878675',status:1,free:40,total:800}, | ||
20 | - {Name:'万达停车场333333',lonId:'111.782579',latId:'40.778675',status:2,free:300,total:500} | 18 | + {Name:'万达停车场1',lonId:'111.742579',latId:'40.818675',status:0,freeBrethNum:0,plBerthNum:1000,plName:'万达广场停车场1',plAddress:'北京万达广场1'}, |
19 | + {Name:'万达停车场2',lonId:'111.622579',latId:'40.878675',status:1,freeBrethNum:100,plBerthNum:800,plName:'万达广场停车场2',plAddress:'北京万达广场2'}, | ||
20 | + {Name:'万达停车场333333',lonId:'111.782579',latId:'40.778675',status:2,freeBrethNum:300,plBerthNum:500,plName:'万达广场停车场3',plAddress:'北京万达广场3'} | ||
21 | ]; | 21 | ]; |
22 | var map = new BMap.Map('map', {enableMapClick: false}) | 22 | var map = new BMap.Map('map', {enableMapClick: false}) |
23 | var point = new BMap.Point(data[0].lonId, data[0].latId) | 23 | var point = new BMap.Point(data[0].lonId, data[0].latId) |
@@ -38,7 +38,7 @@ export default { | @@ -38,7 +38,7 @@ export default { | ||
38 | var pt = new BMap.Point(data[item].lonId, data[item].latId); | 38 | var pt = new BMap.Point(data[item].lonId, data[item].latId); |
39 | points[i] = pt; | 39 | points[i] = pt; |
40 | if(data[item].freeBrethNum/data[item].plBerthNum == 0){ | 40 | if(data[item].freeBrethNum/data[item].plBerthNum == 0){ |
41 | - var myIcon = new BMap.Icon(busyCar, | 41 | + var myIcon = new BMap.Icon(idleCar, |
42 | new BMap.Size(29, 40), { | 42 | new BMap.Size(29, 40), { |
43 | offset: new BMap.Size(10, 40), | 43 | offset: new BMap.Size(10, 40), |
44 | textColor: '#fff' | 44 | textColor: '#fff' |
@@ -52,7 +52,7 @@ export default { | @@ -52,7 +52,7 @@ export default { | ||
52 | }); | 52 | }); |
53 | var marker = new BMap.Marker(pt,{icon:myIcon}); | 53 | var marker = new BMap.Marker(pt,{icon:myIcon}); |
54 | } else { | 54 | } else { |
55 | - var myIcon = new BMap.Icon(idleCar, | 55 | + var myIcon = new BMap.Icon(busyCar, |
56 | new BMap.Size(29, 40), { | 56 | new BMap.Size(29, 40), { |
57 | offset: new BMap.Size(10, 40), | 57 | offset: new BMap.Size(10, 40), |
58 | textColor: '#fff' | 58 | textColor: '#fff' |
@@ -68,21 +68,37 @@ export default { | @@ -68,21 +68,37 @@ export default { | ||
68 | marker.setTop(true,27000000); | 68 | marker.setTop(true,27000000); |
69 | map.addOverlay(marker); | 69 | map.addOverlay(marker); |
70 | var myLabel; | 70 | var myLabel; |
71 | + map.removeOverlay(myLabel); | ||
71 | 72 | ||
72 | - marker.addEventListener("mouseover", (e)=> { | ||
73 | - map.removeOverlay(myLabel); | ||
74 | - var that = this; | ||
75 | - let tmpHtml = ''; | ||
76 | - for(let i=0;i<JSON.parse(data[itemthat].plRate).length;i++){ | ||
77 | - //console.log(data[itemthat].plRate) | ||
78 | - tmpHtml += "<li>"+JSON.parse(data[itemthat].plRate)[i].standard+"</li>" | 73 | + // map.removeOverlay(myLabel); |
74 | + myLabel = new BMap.Label( | ||
75 | + `<div class="dialog-wrap"> | ||
76 | + <div class="dialog-header" title="${data[item].plAddress}">${data[item].plName}</div> | ||
77 | + <div class="dialog-address" title="${data[item].plAddress}">${data[item].plAddress}</div> | ||
78 | + <ul class="dislog-body"> | ||
79 | + <li><div>${data[item].freeBrethNum}</div><div>空闲</div></li> | ||
80 | + <li></li> | ||
81 | + <li><div>${data[item].plBerthNum}</div><div>总数</div></li> | ||
82 | + </ul> | ||
83 | + <div class="dislog-footer">停车场收入:1293847.00元</div> | ||
84 | + <div class="dislog-footer">停车场收入:1293847.00元</div> | ||
85 | + </div>`, | ||
86 | + { | ||
87 | + offset: new BMap.Size(-225, -55), //label的偏移量,为了让label的中心显示在点上 | ||
88 | + position: pt | ||
89 | + }); | ||
90 | + myLabel.setStyle({ | ||
91 | + // color: "#0f0", | ||
92 | + // fontSize: "12px", | ||
93 | + padding: "0", | ||
94 | + // whiteSpace: "normal", | ||
95 | + backgroundColor: "", | ||
96 | + border: "0px", | ||
97 | + zIndex: "1000" | ||
79 | } | 98 | } |
80 | - | ||
81 | - | ||
82 | - }); | ||
83 | - marker.addEventListener("mouseout", function (e) { | ||
84 | - map.removeOverlay(myLabel); | ||
85 | - }); | 99 | + ); |
100 | + marker.setLabel(myLabel) | ||
101 | + marker.setTop(true,27000000); | ||
86 | i++; | 102 | i++; |
87 | })(i); | 103 | })(i); |
88 | } | 104 | } |
@@ -99,4 +115,6 @@ export default { | @@ -99,4 +115,6 @@ export default { | ||
99 | width: 100%; | 115 | width: 100%; |
100 | height: 100%; | 116 | height: 100%; |
101 | } | 117 | } |
118 | + | ||
119 | + | ||
102 | </style> | 120 | </style> |
src/images/content/dialog-address.png
0 → 100644
769 Bytes
src/images/content/sectionsmall.png
0 → 100644
1.58 KB
src/style/reset.css
@@ -130,4 +130,90 @@ table { | @@ -130,4 +130,90 @@ table { | ||
130 | 130 | ||
131 | .anchorBL{display:none;} /*去掉百度地图logo*/ | 131 | .anchorBL{display:none;} /*去掉百度地图logo*/ |
132 | 132 | ||
133 | +.dialog-wrap{ | ||
134 | + width:220px; | ||
135 | + height: 160px; | ||
136 | + padding:0 15px 15px 15px; | ||
137 | + background:rgba(3,38,116,.7) url("../images/content/sectionsmall.png") no-repeat; | ||
138 | + background-size: 100% 100%; | ||
139 | +} | ||
140 | +.dialog-header{ | ||
141 | + width: 220px; | ||
142 | + height:34px; | ||
143 | + line-height: 34px; | ||
144 | + font-size: 14px; | ||
145 | + font-weight:500; | ||
146 | + overflow: hidden; | ||
147 | + white-space: nowrap; | ||
148 | + text-overflow: ellipsis; | ||
149 | + color:rgba(255,255,255,.8); | ||
150 | +} | ||
151 | +.dialog-address{ | ||
152 | + height:22px; | ||
153 | + font-size:12px; | ||
154 | + padding-left: 20px; | ||
155 | + font-family:PingFang-SC-Medium; | ||
156 | + font-weight:500; | ||
157 | + color:rgba(255,255,255,.4); | ||
158 | + background: url("../images/content/dialog-address.png") no-repeat 0 3px; | ||
159 | + background-size: 12px 12px | ||
160 | +} | ||
161 | +.dislog-body{ | ||
162 | + display: flex; | ||
163 | + height: 50px; | ||
164 | + background:#2577F5; | ||
165 | +} | ||
166 | +.dislog-body li{ | ||
167 | + text-align: center; | ||
168 | + color: #fff; | ||
169 | +} | ||
170 | +.dislog-body li:nth-of-type(1),.dislog-body li:nth-of-type(3){ | ||
171 | + flex: 1; | ||
172 | +} | ||
173 | +.dislog-body li:nth-of-type(2){ | ||
174 | + width:1px; | ||
175 | + height:31px; | ||
176 | + margin-top: 9px; | ||
177 | + background:rgba(5,41,112,.6); | ||
178 | +} | ||
179 | +.dislog-body li:nth-of-type(1) div:nth-of-type(1){ | ||
180 | + height: 25px; | ||
181 | + line-height: 30px; | ||
182 | + font-size: 24px; | ||
183 | + color: #0ECF0E; | ||
184 | +} | ||
185 | +.dislog-body li:nth-of-type(1) div:nth-of-type(2),.dislog-body li:nth-of-type(3) div:nth-of-type(2){ | ||
186 | + height: 25px; | ||
187 | + line-height: 25px; | ||
188 | + color:rgba(69,195,243,1) | ||
189 | +} | ||
190 | + | ||
191 | +.dislog-body li:nth-of-type(3) div:nth-of-type(1){ | ||
192 | + height: 25px; | ||
193 | + line-height: 30px; | ||
194 | + font-size: 24px; | ||
195 | + color: #fff; | ||
196 | +} | ||
197 | +.dislog-footer{ | ||
198 | + height:25px; | ||
199 | + line-height: 25px; | ||
200 | + font-size:12px; | ||
201 | + font-family:PingFang-SC-Regular; | ||
202 | + font-weight:400; | ||
203 | + color:rgba(7,179,245,1); | ||
204 | +} | ||
205 | +.dislog-footer-main{ | ||
206 | + height:34px ; | ||
207 | + overflow-y: auto; | ||
208 | +} | ||
209 | +.dislog-footer-main li { | ||
210 | + font-size:12px; | ||
211 | + font-family:PingFang-SC-Regular; | ||
212 | + font-weight:400; | ||
213 | + color:rgba(7,179,245,1); | ||
214 | + overflow: hidden; | ||
215 | + white-space: nowrap; | ||
216 | + text-overflow: ellipsis; | ||
217 | +} | ||
218 | + | ||
133 | 219 |