Titanium - 地图自定义注释旋转

Titanium - Map custom annotation rotation

我正在尝试在地图上显示风向。对于地图上的每个图钉,我想更改颜色和方向以表示风力和风向。

这是我所做的:

var pinWindLabel = Ti.UI.createLabel({ width:Ti.UI.SIZE, height:Ti.UI.SIZE, text:'\ue958', font:{fontFamily:Ti.App.ICONS, fontSize:25}, touchEnabled:false });
var pinWind = Ti.UI.createView({width:Ti.UI.SIZE, height:Ti.UI.SIZE});
pinWind.add(pinWindLabel);

并且,在 API 响应中:

for(var k=0; k<res.length; k++){

    if(res[k].wind_avg < 10){
        pinWindLabel.setColor('green');
    } else{
        pinWindLabel.setColor('blue');
    }

    var pin = Map.createAnnotation({
        latitude: res[k].lat,
        longitude: res[k].lng,
        image:pinWind.toImage(),
    });
    annotations.push(pin);
}

我很难更改每个图钉的颜色。没有 'toImage()',我认为这是不可能的。但是现在,它起作用了:)

现在我想改变它的方向。但即使使用此代码,引脚始终具有相同的方向:

var pinWindLabel = Ti.UI.createLabel({ width:Ti.UI.SIZE, height:Ti.UI.SIZE, text:'\ue958', font:{fontFamily:Ti.App.ICONS, fontSize:25}, touchEnabled:false });
var pinWind = Ti.UI.createView({width:Ti.UI.SIZE, height:Ti.UI.SIZE});
pinWind.transform = Ti.UI.create2DMatrix({rotate: 236});
pinWind.add(pinWindLabel);

那么,我该怎么做才能首先旋转所有引脚,然后在 for 循环中旋转每个引脚?

非常感谢:)

根据评论部分的建议,在这种情况下,使用预旋转的图像文件更有效Click here to see Rotated Pins作为别针。

虽然您需要创建许多图像,但它是跨所有平台的最有效解决方案,无需太多代码和复杂性。

另一点需要注意的是,在 运行 时间修改图像需要更多的计算能力,因此始终建议应用最少的修改,尤其是在 运行 时间的图像上。始终拥有最佳分辨率和最小尺寸的图像,以加快加载速度。