在項目中,調用百度地圖JavaScript API,做覆蓋物的旋轉再添加到地圖上,結果出現偏移了。
調試過程中的效果圖:
發現圖片的旋轉並不是按車子的中心來的,而是之外的一個點。最后發現犯了一個很細節的錯:
<script type="text/javascript"> // 百度地圖API功能 var map = new BMap.Map("allmap"); var point = new BMap.Point(121.38750613, 31.1743319); map.centerAndZoom(point, 15); //創建車 var pt = new BMap.Point(121.38750613, 31.1743319); var myIcon = new BMap.Icon("../../../../HelloWord/car.png", new BMap.Size(41,90)); //alert("圖標的定位點相對於圖標左上角的偏移值="+myIcon.anchor.width); var marker = new BMap.Marker(pt,{icon:myIcon}); // 創建標注 var label=new BMap.Label("test"); marker.setLabel(label); marker.setRotation(180); map.addOverlay(marker); // 將標注添加到地圖中 </script>
當初Icon的Size(Icon在地圖上顯示的大小)隨便設了一個值,結果設大了,圖片在旋轉時是按Size的中心來的,只是在這里我們肉眼看到沒有按車子的中心旋轉。將Size的大小設置成圖片的大小即可。
這個問題特做下記錄!!