Titanium - 映射自定义注释旋转

时间:2017-05-25 13:16:18

标签: android dictionary titanium appcelerator markers

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

这就是我所做的:

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);
}

我很难改变每个针脚的颜色。如果没有&#39; toImage()&#39;,我认为这是不可能的。但现在,它有效:)

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

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循环中的每个引脚?

非常感谢:)

1 个答案:

答案 0 :(得分:1)

正如评论部分所述,在这种情况下,使用预旋转的图像文件 Click here to see Rotated Pins 作为引脚效率更高。

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

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