0

我正在尝试创建一个数组,它将值从本地数据库推送到 Titanium 中的注释中。注释不响应我的数据库的值。我想我在某个地方犯了一个小学生的错误,但我现在一直盯着自己瞎了一段时间。谁能帮我?非常感激!干杯。

函数本地数据库(){

var db = Ti.Database.install('/my_db/annotations.sqlite', 'Annos');
var row = db.execute('select title, latitude, longitude, type from annotations ');
places = [];

while (row.isValidRow()){
       var annotation = Titanium.Map.createAnnotation({
               latitude:row.fieldByName('latitude'),
               longitude:row.fieldByName('longitude'),
               title:row.fieldByName('title'),
               subtitle:row.fieldByName('type'),
               animate:true,
               pincolor: Titanium.Map.ANNOTATION_GREEN
    });

       places.push(annotation);
       mapview.addAnnotation(annotation);
       row.next();

}

mapview.annotations = places;
db.close();

}

   var mapview = Titanium.Map.createView({
   mapType: Titanium.Map.STANDARD_TYPE,
   height: '100%',
   animate:true,
   regionFit:true,
   userLocation:true,

});

本地数据库();

win.add(地图视图);

4

1 回答 1

1

您需要使用 addAnnotations 方法传递您创建的注释数组 http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Map.View-method-addAnnotations

var places = [];

while (row.isValidRow()){
   var annotation = Titanium.Map.createAnnotation({
           latitude:row.fieldByName('latitude'),
           longitude:row.fieldByName('longitude'),
           title:row.fieldByName('title'),
           subtitle:row.fieldByName('type'),
           animate:true,
           pincolor: Titanium.Map.ANNOTATION_GREEN
});
   places.push(annotation);
   row.next();
}
// optional mapview.removeAllAnnotations();
mapview.addAnnotations(places);
于 2013-05-29T14:59:20.467 回答