【问题标题】:Titanium: How to show multiple Annotations on Map?Titanium:如何在地图上显示多个注释?
【发布时间】:2012-02-04 20:39:37
【问题描述】:

它在 Titanium SDK 上的第二天。

我想在地图上显示多个注释。我已经在 SO 上提到了答案,但找不到解决方法!

我尝试了以下代码:-

// To create map
var mapview = Titanium.Map.createView({
        mapType: Titanium.Map.STANDARD_TYPE,
        region:{latitude:33.74511, longitude:-84.38993, latitudeDelta:0.5, longitudeDelta:0.5},
        animate:true,
        regionFit:true,
        userLocation:true,
        annotations:[createAnnotations()],
        top:110,
        height:200
    });  

// CREATE ANNOTATIONS

function createAnnotations ()
{
    var annoatationData = [];
    for (var i=0; i < 10; i++) 
    {
            var mountainView = Titanium.Map.createAnnotation(
            {
                latitude:37.390749,
                longitude:-122.081651,
                title:"Appcelerator Headquarters",
                subtitle:'Mountain View, CA',
                pincolor: isAndroid ? "orange" : Titanium.Map.ANNOTATION_RED,
                animate:true,
                myid:i // CUSTOM ATTRIBUTE THAT IS PASSED INTO EVENT OBJECTS
            });

      annoatationData.push(mountainView);
    };  

    return annoatationData ;
}

但是我收到了这个错误

[错误] 传递给函数的类型无效。预期:NSDictionary,是: __NSArrayM in -[TiMapView annotationFromArg:] (TiMapView.m:96)

有什么建议吗?

谢谢...

【问题讨论】:

  • 需要注意的一点:如果您对注释使用自定义视图,则必须为每个注释创建该视图的实例。我犯了将相同视图传递给每个注释的错误,这使得只有最后一个注释可见。

标签: titanium appcelerator


【解决方案1】:

解决了!!!

刚刚替换了这行代码:

 annotations:[createAnnotations()],

 annotations:createAnnotations(),

【讨论】:

  • 现在接受它是最好的答案;)你在一个对象中有一个对象,这确实不起作用:)
  • @Topener 如何设置区域动态,比如说它应该与我的第一个注释相同?
  • 请向 SO 添加另一个问题
  • 典型的 JS。你会有成千上万个这样的钛合金:)
猜你喜欢
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多