在地圖開發中,咱們須要把標註換成各類各樣的圖片,以突顯個性。javascript
在高分辨率的手機下,圖片尺寸須要壓縮至一半,以保持圖片清晰。讓咱們來看一看,應該如何實現。css
有開發者爲了改變圖片的尺寸,直接寫成了html
imageSize: (64, 64)
或者java
imageSize: "64px 64px"
是否有問題呢?web
首先來看一下imageSize的類參考,看到類型是Size。api
Size是高德API自定義的類型,並非num。因此,直接寫數字的作法是不對的。ui
那麼正確的寫法,應該是:spa
imageSize: new AMap.Size(64,64)
在高分辨率顯示器上,應該把尺寸壓縮一半。好比圖片尺寸是128*128,那麼imageSize須要把圖片壓縮一半,應爲64*64。代碼以下:scala
//添加點標記,並使用本身的icon new AMap.Marker({ map: map, position: [116.47395,39.986058], icon: new AMap.Icon({ image: "marker128.png", size: new AMap.Size(128, 128), //圖標大小 imageSize: new AMap.Size(64,64) }) });
demo地址:http://zhaoziang.com/amap/imageSize.htmcode
所有示例代碼:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> <title>自定義圖標</title> <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/> <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=250860ccb5953fa5d655e8acf40ebb7"></script> <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script> </head> <body> <div id="container"></div> <script type="text/javascript"> //初始化地圖對象,加載地圖 var map = new AMap.Map("container", { resizeEnable: true, zoom:11 }); //添加點標記,並使用本身的icon new AMap.Marker({ map: map, position: [116.47395,39.986058], icon: new AMap.Icon({ image: "marker128.png", size: new AMap.Size(128, 128), //圖標大小 imageSize: new AMap.Size(64,64) }) }); //添加點標記,並使用本身的icon new AMap.Marker({ map: map, position: [116.321514,39.91289], icon: new AMap.Icon({ image: "marker128.png", size: new AMap.Size(128, 128), //圖標大小 imageSize: new AMap.Size(128,128) }) }); </script> </body> </html>