【问题标题】:Titanium - Map custom annotation rotationTitanium - 地图自定义注释旋转
【发布时间】:2017-05-25 13:16:18
【问题描述】:

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

这是我所做的:

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

非常感谢:)

【问题讨论】:

  • 不要旋转针脚,不如使用这些针脚已经旋转的图像Tilted Pin - click here
  • 是的,这是一个解决方案,但我必须为很多风向制作图像,这就是为什么我想知道是否可以旋转......但我可能会做那:)
  • 虽然我从未尝试在注释上应用矩阵动画,因为我不想在我的应用程序公开时遇到意想不到的错误。但是使用预定义的图像(谁在乎你是否放了 50 张图像)肯定会让你的工作更容易,没有任何错误/问题。所以继续努力吧 :) .. 这将使您的应用程序稳定且更快,因为您将直接使用预定义的图像。
  • 我按照您的建议制作了每张图片,我的地图现在可以完美运行 :) 谢谢!
  • 太好了,让我将其添加为答案,您可以将其标记为已接受以帮助其他用户了解解决方案。

标签: android dictionary titanium appcelerator markers


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多