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作为别针。
虽然您需要创建许多图像,但它是跨所有平台的最有效解决方案,无需太多代码和复杂性。
另一点需要注意的是,在 运行 时间修改图像需要更多的计算能力,因此始终建议应用最少的修改,尤其是在 运行 时间的图像上。始终拥有最佳分辨率和最小尺寸的图像,以加快加载速度。
我正在尝试在地图上显示风向。对于地图上的每个图钉,我想更改颜色和方向以表示风力和风向。
这是我所做的:
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作为别针。
虽然您需要创建许多图像,但它是跨所有平台的最有效解决方案,无需太多代码和复杂性。
另一点需要注意的是,在 运行 时间修改图像需要更多的计算能力,因此始终建议应用最少的修改,尤其是在 运行 时间的图像上。始终拥有最佳分辨率和最小尺寸的图像,以加快加载速度。