【高德地圖API】如何設置Icon的imageSize?


在地圖開發中,我們需要把標注換成各種各樣的圖片,以突顯個性。

  

 

在高分辨率的手機下,圖片尺寸需要壓縮至一半,以保持圖片清晰。讓我們來看一看,應該如何實現。

 

有開發者為了改變圖片的尺寸,直接寫成了

imageSize: (64, 64)

或者

imageSize: "64px 64px"

 

是否有問題呢?

 

首先來看一下imageSize的類參考,看到類型是Size。

 

Size是高德API自定義的類型,並不是num。所以,直接寫數字的做法是不對的。

 

那么正確的寫法,應該是:

imageSize: new AMap.Size(64,64)

 

在高分辨率顯示器上,應該把尺寸壓縮一半。比如圖片尺寸是128*128,那么imageSize需要把圖片壓縮一半,應為64*64。代碼如下:

    //添加點標記,並使用自己的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.htm

 

全部示例代碼:

<!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>                        

 


免責聲明!

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



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