• JS 百度地图 地图线路描绘


      JS 百度地图 地图线路描绘

      

    <script type="text/javascript"
                src="http://api.map.baidu.com/api?v=3.0&ak=PlhFWpA02aoURjAOpnWcRGqw7AI8EEyO"></script>
    <div id="allmap"></div>
     // 百度地图API功能
        var map = new BMap.Map("allmap");
        map.centerAndZoom(new BMap.Point(113.350512, 23.191744),12);
        map.enableScrollWheelZoom();
    
        var data=[
            {lng:"113.350512",lat:"23.191744"},
            {lng:"113.364512",lat:"23.182644"},
            {lng:"113.375512",lat:"23.173544"},
            {lng:"113.386512",lat:"23.164344"},
            {lng:"113.397512",lat:"23.155444"},
            {lng:"113.318512",lat:"23.136244"},
            {lng:"113.329512",lat:"23.147144"}
        ]
        var pois1 = [];
        (data).forEach(function (item) {
            pois1.push(new BMap.Point(item.lng, item.lat));
        })
    
        var sy = new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, {
            scale: 0.4,//图标缩放大小
            strokeColor: '#fff',//设置矢量图标的线填充颜色
            strokeWeight: '2',//设置线宽
        });
        var icons = new BMap.IconSequence(sy, '', '5%');
        var point = pois1[Math.ceil(pois1.length / 2)];
        map.centerAndZoom(point, 12);
    
        //描绘线
        var line=new BMap.Polyline(addPolyline(pois1,"red",5));
        function addPolyline(pois, color, width) {
            var polyline = new BMap.Polyline(pois, {
                enableEditing: false,//是否启用线编辑,默认为false
                enableClicking: true,//是否响应点击事件,默认为true
                strokeWeight: width,//折线的宽度,以像素为单位
                strokeOpacity: 0.8,//折线的透明度,取值范围0 - 1
                strokeColor: color//折线颜色
            });
    
            map.addOverlay(polyline);          //增加折线
            return polyline;
        };
        var startPng=("./start.png"),endPng=("./end.png"),pointY=("./poscar.png");
    
        SMSSMAPGetOrders(data,'',map);
    
        //描绘开始-结束图标
        setTimeout(function () {
            if (data.length > 1) {
                var length = data.length - 1;
                SMSSMAPAddCars(map, data[0].lng, data[0].lat, startPng, 18, 18, 0);
                SMSSMAPAddCars(map, data[length].lng, data[length].lat, endPng, 18, 18, 0);
            } else {
                SMSSMAPAddCars(map, data[0].lng, data[0].lat,startPng, 18, 18, 0);
            }
        }, 500);
    
        //描绘途径点--图标
        function SMSSMAPGetOrders(pois1, carInfo, mapCity) {
            for (var i = 0; i < pois1.length; i++) {
                if (pois1[i].lng && pois1[i].lng != "") {
                    SMSSMAPAddCars(mapCity, pois1[i].lng, pois1[i].lat, pointY, 15, 15, 0)
                }
            }
        };
    
        //生成图标
        function SMSSMAPAddCars(map, lng, lat, src, w, h, index) {
            //经纬度转换
            var point = new BMap.Point(lng, lat);
            var myIcon = SMSSMAPICON(src, w, h, index);
            // 创建标注对象并添加到地图
            var marker = new BMap.Marker(point, {icon: myIcon});
            marker.setTitle("");
            map.addOverlay(marker);
    
        };
    
        //设置图标格式
        function SMSSMAPICON(src, w, h, index) {
            var myIcon = new BMap.Icon(src, new BMap.Size(w, h), {
                anchor: new BMap.Size(10, 10),
                imageOffset: new BMap.Size(0, 0 - index * h),   // 设置图片偏移
                // 设置图片大小
                imageSize: new BMap.Size(w, h)
            });
    
            return myIcon;
        };
  • 相关阅读:
    使用systemctl管理指定服务需要做的配置
    挖矿病毒
    灰度发布系统
    血一般的教训,请慎用insert into select
    关于程序bug的闲谈
    来自一个网络监控软件的自述
    为什么CTO、技术总监、架构师都不写代码,还这么牛逼?
    原来 Elasticsearch 还可以这么理解
    爬了20W+条猫咪交易数据,它不愧是人类团宠
    NPUCTF2020 这是什么觅🐎
  • 原文地址:https://www.cnblogs.com/nelsonlei/p/11661154.html
Copyright © 2020-2023  润新知