Titanium: How to show multiple Annotations on Map?

2019-09-17 16:10发布

Its mine 2nd day on Titanium SDK.

I want to show multiple annotations on the map. I have referred answers at SO but couldn't find fix !

I tried below code : -

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

But I am getting this error

[ERROR] Invalid type passed to function. expected: NSDictionary, was: __NSArrayM in -[TiMapView annotationFromArg:] (TiMapView.m:96)

Any suggestions ?

Thanks...

1条回答
男人必须洒脱
2楼-- · 2019-09-17 17:09

Solved !!!

Just replaced this line of code :

 annotations:[createAnnotations()],

with

 annotations:createAnnotations(),
查看更多
登录 后发表回答