/*
* 功能:使用canvas旋转图标,并生成路径
* 参数:options(Object)
* 用途:处理谷歌地图marker旋转
* */
const setRotation = (options) => {
return new Promise((resolve, reject) => {
let w = options.width || 40
let h = options.height || 40
let canvas = document.createElement('canvas')
canvas.width = w
canvas.height = h
let ctx = canvas.getContext('2d')
let angle = options.deg ? options.deg * Math.PI / 180 : 0
let centerX = w / 2
let centerY = h / 2
let dataURL = ''
let img = new Image()
img.src = options.url
img.onload = function() {
ctx.clearRect(0, 0, w, h)
ctx.save()
ctx.translate(centerX, centerY)
ctx.rotate(angle)
ctx.translate(-centerX, -centerY)
ctx.drawImage(img, centerX/2, 0)
ctx.restore()
dataURL = canvas.toDataURL('image/png')
resolve({
size: options.size,
origin: options.origin,
url: dataURL
})
}
})
}