import AMap from 'AMap'

var geocoder =  null
var initMap = (address) => {
    geocoder = new AMap.Geocoder({
        city: address, //城市设为北京，默认：“全国”
        radius: 1000 //范围，默认：500
    });
}
// 关键字搜索获取经维度
var gjzCode = (address, _this, type) => {
    // AMap.service(["AMap.PlaceSearch"], function() {
    //     //构造地点查询类
    //     var placeSearch = new AMap.PlaceSearch({ 
    //         pageSize: 1, // 单页显示结果条数
    //         pageIndex: 1, // 页码
    //         panel: "panel", // 结果列表将在此容器中进行展示。
    //         autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
    //     });
    //     //关键字查询
    //     placeSearch.search('address');
    // });
    AMap.plugin('AMap.PlaceSearch', function(){ 
        var autoOptions = {
            city: '0591'
        }
        var placeSearch = new AMap.PlaceSearch(autoOptions);
        placeSearch.search(address, function(status, result) {
            // 搜索成功时，result即是对应的匹配数据
            if (status === 'complete' && result['poiList']) {
                var lnglat = result.poiList.pois[0]
                _this[type.form][type.lat] = lnglat.location.lat
                _this[type.form][type.lng] = lnglat.location.lng
                _this.$forceUpdate()
            }
        })

    })
    
}
// 根据地址返回高德地图经纬度
var geoCode = (address, _this, type) => {
    geocoder.getLocation(address,(status, result) => {
        if (status === 'complete'&& result.geocodes.length) {
            var lnglat = result.geocodes[0].location
            _this[type.form][type.lat] = lnglat.lat
            _this[type.form][type.lng] = lnglat.lng
            _this.$forceUpdate()
            // return lnglat
        }else{
            result = ''
            log.error('根据地址查询位置失败');
            // return ''
        }
    });
}
// 根据经纬度返回高德地图地址
var regeoCode = (point, _this, type) => {
    geocoder.getAddress(point, function(status, result) {
        if (status === 'complete'&&result.regeocode) {
            var address = result.regeocode.formattedAddress;
            _this[type.form][type.address] =  address
        }else{
            log.error('根据经纬度查询地址失败')
        }
    });
}
export {
    initMap,
    geoCode,
    regeoCode,
    gjzCode
}