zoukankan      html  css  js  c++  java
  • 【高德地图API】如何设置Marker的offset?

    一些朋友在往地图上添加标注的时候,往往会发现,图片的尖尖角对不上具体的点。比如,我要在上海东方明珠上扎一个点。

    首先,我使用取点工具http://lbs.amap.com/console/show/picker 拾取到东方明珠的经纬度,为121.499809,31.239666。

    然后写一个自定义图片标注的代码,代码片段:

    var marker = new AMap.Marker({ //添加自定义点标记
            map: map,
            position: [121.499809,31.239666], //基点位置
            offset: new AMap.Pixel(0, 0), //相对于基点的偏移位置
            draggable: true,  //是否可拖动
            content: '<img src="marker_3.png" />'   //自定义点标记覆盖物内容
        });

    为了方便查看,我在标注图外面加了一个圈,可以看到,图片的左上角对准了基点位置。并不是图片的尖尖角啊喂!!

    所以,我们需要设置offset,也就是偏移,来让标注的尖尖角对准东方明珠。图片的尺寸是128*128,我们先把偏移设置成-128,-128,意思是往左走,往上走。代码如下:

        var marker2 = new AMap.Marker({ //添加自定义点标记
            map: map,
            position: [121.499809,31.239666], //基点位置
            offset: new AMap.Pixel(-128, -128), //相对于基点的偏移位置
            draggable: true,  //是否可拖动
            content: '<img src="marker_3.png" />'   //自定义点标记覆盖物内容
        });

    图片完美地跑到了上面!但是太靠左了,应该往右移一半呢。

    所以把偏移设置成-64,-128。完整代码如下:

    <!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>markerOffset</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=0250860ccb5953fa5d655e8acf40ebb7"></script>
    </head>
    <body>
    <div id="container"></div>
    <script type="text/javascript">
        var map = new AMap.Map("container", {
            resizeEnable: true,
            center: [121.499809,31.239666],//地图中心点
            zoom: 18 //地图显示的缩放级别
        });    
    
        var marker2 = new AMap.Marker({ //添加自定义点标记
            map: map,
            position: [121.499809,31.239666], //基点位置
            offset: new AMap.Pixel(-64, -128), //相对于基点的偏移位置
            draggable: true,  //是否可拖动
            content: '<img src="marker_3.png" />'   //自定义点标记覆盖物内容
        });
    </script>
    </body>
    </html>                        

    这样子,标注的尖尖角就完美地对准了东方明珠。如下图:

    以上就是为什么以及如何给Marker设置offset洛~ 

    如果大家还有疑问,可以给我提工单:http://lbs.amap.com/dev/ticket#/tickets

    48小时内回复,还有机会免费得到教程详解。谢谢!

  • 相关阅读:
    Windows Bat命令常用操作
    Centos下安装Geth
    Centos常用操作
    为什么CEdit使用SetSel无法取消选择?
    VC编译参数/Zm问题
    XX.exe已经停止工作,的处理兼容性
    excel表,Alt+F11调用出vb语言处理excel表内容,很方便
    在限制了可选日期范围的calendar中,使几个日期不可选的方法
    Agile敏捷开发
    做软件的这些年
  • 原文地址:https://www.cnblogs.com/milkmap/p/6088553.html
Copyright © 2011-2022 走看看