腾讯地图利用绘图工具测量距离

1、引用
<script charset="utf-8"
        src="https://map.qq.com/api/js?v=2.exp&key=“自己的key”&libraries=drawing,geometry"></script>

2、js

map = new qq.maps.Map(document.getElementById("map-canvas"), {
    zoom: /*sov:zoom*/9/*eov*/,
    center: new qq.maps.LatLng(/*sov:center_lat*/31.5/*eov*/, /*sov:center_lng*/121.5/*eov*/)
});//绘图工具
drawingManager = new qq.maps.drawing.DrawingManager({
    drawingMode: qq.maps.drawing.OverlayType.null,
    drawingControl: true,
    drawingControlOptions: {
        position: qq.maps.ControlPosition.TOP_CENTER,
        drawingModes: [
            qq.maps.drawing.OverlayType.MARKER,
            qq.maps.drawing.OverlayType.CIRCLE,
            qq.maps.drawing.OverlayType.POLYGON,
            qq.maps.drawing.OverlayType.POLYLINE,
            qq.maps.drawing.OverlayType.RECTANGLE
        ]
    },
    circleOptions: {
        fillColor: new qq.maps.Color(255, 208, 70, 0.3),
        strokeColor: new qq.maps.Color(88, 88, 88, 1),
        strokeWeight: 3,
        clickable: false
    },
    PolylineOptions: {
        strokeLinecap: 'square',
    },
    // polylinecomplete:getPolylinecomplete(qq.maps.Polyline),
});
drawingManager.setMap(map);
// 当一个折线覆盖物绘制完成时,触发此事件
qq.maps.event.addListener(drawingManager, 'polylinecomplete', function (event) {
    let polyline = event;
    let polylineLatLng = event.getPath();
    let start = new qq.maps.LatLng(polylineLatLng.elems[0].lat, polylineLatLng.elems[0].lng),
        end = new qq.maps.LatLng(polylineLatLng.elems[polylineLatLng.length-1].lat, polylineLatLng.elems[polylineLatLng.length-1].lng);
    //计算距离
    let distance = Math.round(qq.maps.geometry.spherical.computeDistanceBetween(start, end) * 10) / 10000;
    let label = new qq.maps.Label({
        position: end,
        map: map,
        content: distance + 'km'
    });
    polyline.setVisible(false);
    polyline = new qq.maps.Polyline({
        //折线是否可点击
        clickable: true,
        map: map,
        //折线的路径
        path: [start,end],
        //折线的宽度
        strokeWeight: 3,
        //折线末端线帽的样式
        strokeLinecap: 'square',
        //折线是否可见
        visible: true,
        //折线的zIndex
        zIndex: 1000
    });});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值