import { Message } from 'element-ui'


// 获取点击的经纬度
// export function getLnglat(e) {
//   return e.lnglat.lng + ',' + e.lnglat.lat
// }

// 当前经纬度
var lnglat = []
    // 路线
var walking = null

// 城市定位
export function location(map) {
    var geolocation = new AMap.Geolocation({
        enableHighAccuracy: true, //是否使用高精度定位，默认:true
        timeout: 2000, //超过10秒后停止定位，默认：5s
        buttonPosition: "RB", //定位按钮的停靠位置
        buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
        zoomToAccuracy: false, //定位成功后是否自动调整地图视野到定位点
        showCircle: false, //是否显示定位精度圈
        circleOptions: { //定位精度圈的样式
            // strokeOpacity: 0,  //线透明度
            // strokeWeight: 350,  //线粗细度
            // fillColor: "#3968f1",  //填充颜色    #cecfd1
            // fillOpacity: 0.2, //填充透明度
            // clickable: true,
            // bubble:true,
        }
    });
    map.addControl(geolocation);
    geolocation.getCurrentPosition((status, result) => {
        if (status == "complete") {
            lnglat[0] = result.position.lng
            lnglat[1] = result.position.lat
        } else {
            Message({ type: 'warning', message: '获取位置失败，由于众多浏览器（Google）已不再支持非安全域的定位请求，请升级您的站点到HTTPS' })
        }
    });
}

// 当前位置——圆（没有用到）
/**
export function currentLocation(map) {
  // 构造矢量圆形
  var circle = new AMap.Circle({
    center: new AMap.LngLat("116.403322", "39.920255"), // 圆心位置
    radius: 10,  //半径
    strokeColor: "#F33",  //线颜色
    strokeOpacity: 1,  //线透明度
    strokeWeight: 30,  //线粗细度
    fillColor: "#ee2200",  //填充颜色
    fillOpacity: 0.2 //填充透明度
  });
  // 将以上覆盖物添加到地图上
  // 单独将点标记添加到地图上
  map.add(circle);
}
 */

// 停车场图标
export function parkingMarker(map, parkingList) {
    parkingList.forEach(item => {
        item.coord = item.coord.split(',')
            // 创建图标
        let marker = new AMap.Marker({
            icon: require('@/assets/images/parking_location_img.png'),
            position: item.coord,
            offset: new AMap.Pixel(-35, -70)
        });
        marker.setMap(map);
        let text = createText(item)
        text.setMap(map);
        text.dom.id = 'text_id'
        text.dom.setAttribute('text_id', item.id)
            // 绑定点击事件（当前位置距离停车场的位置路线规划）
        text.on('click', () => {
            walk(map, item, text)
        });

    });
}

// 创建纯文本标记
function createText(item) {
    return new AMap.Text({
        text: item.carsNumber || '0',
        anchor: 'bottom-left', // 设置文本标记锚点
        cursor: 'pointer',
        offset: new AMap.Pixel(-22, -17),
        style: {
            'border-radius': '50%',
            'background-color': '#34393f',
            'width': '40px',
            'height': '40px',
            'line-height': '40px',
            'text-align': 'center',
            'font-size': '18px',
            'border': 'none',
            'color': '#fff'
        },
        position: item.coord
    });
}

// 当前位置距离停车场的位置路线规划（步行导航）
function walk(map, item, text) {
    // 步行导航
    if (!walking) {
        walking = new AMap.Walking({
            map: map,
            // 隐藏终点起点图标
            hideMarkers: true,
        });
    }
    //根据起终点坐标规划步行路线
    walking.search(lnglat, item.coord, (status, result) => {
        if (status === 'complete') {
            console.log('绘制步行路线完成');
            // showParkingInfo(result, text)
        } else {
            Message({ type: 'warning', message: '获取路线规划失败' })
        }
    });
}

// 停车场粗略信息（没有展示，有问题解决不了就不展示了）
function showParkingInfo(result, text) {
    console.log(result);
    text.setText(text.getText() + '  辆车 | 距离你' + (result.routes[0].distance / 1000).toFixed(2) + '公里')
    text.setStyle({
        'border-radius': '20px',
        'background-color': '#34393f',
        'width': '190px',
        'height': '40px',
        'line-height': '40px',
        'text-align': 'left',
        'font-size': '16px',
        'border': 'none',
        'color': '#fff',
        'padding': '0px 15px'
    })
}