高德地图API中覆盖物的精准定位体系——基点+偏移量

大家在看高德地图API网站上的js api范例程序时,经常会看到代码注释中提到“基点”这个字眼,例如下面一段代码:

function addMarker(){
    //构建点对象
    var marker = new AMap.Marker({
        id:"m23",//唯一ID
        position:new AMap.LngLat(116.37388157654,39.907409934248), //基点位置
        icon:"http://api.amap.com/webapi/static/Images/marker_sprite.png", //marker图标,直接传递地址url
        offset:{x:-8,y:-34} //相对于基点的位置
    });
    mapObj.addOverlays(marker);//将点添加到地图
 
    var info = [];
    info.push("<b>  高德软件</b>");
    info.push("  电话 : 010-84107000   邮编 : 100102");
    info.push("  地址 : 北京市望京阜通东大街方恒国际中心A座16层");
     
    var inforWindow = new AMap.InfoWindow({
        offset:new AMap.Pixel(45,-34),
        content:info.join("<br />")
    });
    mapObj.bind(marker,"click",function(e){
        inforWindow.open(mapObj,marker.getPosition());
    });
}

那么什么是基点,怎么对覆盖物进行精准的定位?

  如果我们要在地图上添加一个Marker,则其位置是一个坐标,这个坐标位置即是Marker的基点。对于弹出信息窗口(InfoWindow)来说,基点就是其需要打开的位置。对于Marker来说,要做到精确将图标放置到指定的位置,并且能够使得图标的任意位置对准基点,则需要设置offset属性,即偏移量。

  熟悉HTML代码的网友都知道,图标(或者信息窗口)显示的时候,指定的坐标位置是与其左上角对齐的。所以要通过offset(相对于基点在x方向和y方向的偏移量)来进行精准设置。

关于偏移量设置,请看下图的示例说明:

有了“基点+偏移量”这套定位体系,大家可以根据自己的需要,任意调整覆盖物的显示位置了。



学到新知识了?快来2014高德LBS应用大赛操练起来吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值