A默苍离 2020-09-22 10:34 采纳率: 25%
浏览 341

js 代码 如何改写成 vue 谢谢大佬

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>

        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0MA953dkYQM4fQriWe6NaII8QpjeCCZh"></script>
        <!--加载鼠标绘制工具-->
        <script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
        <link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />

    </head>
    <body>

        <div id="allmap" style="overflow:hidden;zoom:1;position:relative;">
            <div id="map" style="height:500px;-webkit-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;"></div>
        </div>
        <div id="result">
            <input type="button" value="获取绘制的覆盖物个数" onclick="alert(overlays.length)" />
            <input type="button" value="清除所有覆盖物" onclick="clearAll()" />
        </div>

        <script>
            // 百度地图API功能
            var map = new BMap.Map('map');
            var poi = new BMap.Point(116.307852, 40.057031);
            map.centerAndZoom(poi, 16); //设置中心点坐标和地图级别
            map.enableScrollWheelZoom(); //启用鼠标滚动对地图放大缩小

            //鼠标绘制完成回调方法   获取各个点的经纬度
            var overlays = [];
            var overlaycomplete = function(e) {
                overlays.push(e.overlay);
                if(overlays.length>1){
                    alert("只能绘制一个区域!!!")
                }
                var path = e.overlay.getPath(); //Array<Point> 返回多边型的点数组
                console.log(path)
                for (var i = 0; i < path.length; i++) {
                    console.log("lng:" + path[i].lng + "\n lat:" + path[i].lat);
                }
            };
            var styleOptions = {
                strokeColor: "red", //边线颜色。
                fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
                strokeWeight: 3, //边线的宽度,以像素为单位。
                strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
                fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
                strokeStyle: 'solid' //边线的样式,solid或dashed。
            }
            //实例化鼠标绘制工具
            var drawingManager = new BMapLib.DrawingManager(map, {
                isOpen: false, //是否开启绘制模式
                enableDrawingTool: true, //是否显示工具栏
                drawingMode: BMAP_DRAWING_POLYGON, //绘制模式  多边形
                drawingToolOptions: {
                    anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
                    offset: new BMap.Size(5, 5), //偏离值
                    drawingModes: [
                        BMAP_DRAWING_POLYGON,
                        BMAP_DRAWING_CIRCLE,
                        BMAP_DRAWING_RECTANGLE
                    ]
                },
                polygonOptions: styleOptions //多边形的样式
            });

            //添加鼠标绘制工具监听事件,用于获取绘制结果
            drawingManager.addEventListener('overlaycomplete', overlaycomplete);

            function clearAll() {
                for (var i = 0; i < overlays.length; i++) {
                    map.removeOverlay(overlays[i]);
                }
                overlays.length = 0
            }
        </script>


    </body>
</html>

以上代码用vue 怎么 改写啊???求前端大神指教 感激不尽!!!

  • 写回答

3条回答 默认 最新

  • threenewbee 2020-09-22 12:05
    关注

    vue整合百度地图,参考下:

    <!--地图展示-->
    <template>
      <div id="allmap"></div>
    </template>
    <script>
    export default {
      name:'',
      data(){
       return{
    
       }
      },
      mounted() {
        //初始化
        // 百度地图API功能
        var map = new BMap.Map("allmap");    // 创建Map实例
        map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  // 初始化地图,设置中心点坐标和地图级别
        //添加地图类型控件
        map.addControl(new BMap.MapTypeControl({
          mapTypes:[
            BMAP_NORMAL_MAP,
            BMAP_HYBRID_MAP
          ]}));
        map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的
        map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
      }
    }
    </script>
    <style scoped>
      body,
      html,
      #allmap{
        width: 100%;
        height: 600px;
        overflow: hidden;
        margin: 0;
        font-family: "Arial Black";
      }
    </style>
    

    https://blog.csdn.net/qq_38233650/article/details/88533144

    评论

报告相同问题?