谷歌地图旋转图片marker(图片旋转转base64)

//custom rotate icon method for Google map
var RotateIcon = function (options) {
    this.options = options || {};
    this.rImg = options.img || new Image();
    this.rImg.src = this.rImg.src || this.options.url || '';
    this.options.width = this.options.width || 50|| 52;
    this.options.height = this.options.height || 47 || 60;
    canvas = document.createElement("canvas");
    canvas.width = this.options.width;
    canvas.height = this.options.height;
    this.context = canvas.getContext("2d");
    this.canvas = canvas;
};
RotateIcon.makeIcon = function (url) {
    return new RotateIcon({url: url});
};
RotateIcon.prototype.setRotation = function (options) {
    var canvas = this.context,
        angle = options.deg ? options.deg * Math.PI / 180 :
            options.rad,
        centerX = this.options.width / 2,
        centerY = this.options.height / 2;

    canvas.clearRect(0, 0, this.options.width, this.options.height);
    canvas.save();
    canvas.translate(centerX, centerY);
    canvas.rotate(angle);
    canvas.translate(-centerX, -centerY);
    canvas.drawImage(this.rImg, 10, 10);
    canvas.restore();
    return this;
};
RotateIcon.prototype.getUrl = function () {
    return this.canvas.toDataURL('image/png');
};

var makeOnlineIcon =  RotateIcon
    .makeIcon('/cap/static/lib/image/cap/images/online-sign-car.png');
var makeGpsIcon =  RotateIcon
    .makeIcon('/cap/static/lib/image/cap/images/online-gps-car.png');
var makeDataIcon =  RotateIcon
    .makeIcon('/cap/static/lib/image/cap/images/online-data-car.png');
var makeOfflineIcon =  RotateIcon
    .makeIcon('/cap/static/lib/image/cap/images/offline-sign-car.png');


//
markerTempGoogle = new google.maps.Marker({
                        position: {lat: lat, lng: lng}, icon: {
                            url: carStateIcon
                                .setRotation({deg: jdocGps.TG_cap_rotation - 90})
                                .getUrl()
                        }, map: gmap
                    });
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值