1

我正在开发一个 Titanium 应用程序,我需要在地图上显示多个标记。我通过 JSON 数组获取这些标记的数据,可以在此处找到。我没有收到任何错误,我什至收到“成功”警报,但地图上仍然没有显示任何内容。

var pin = [];

var mapview = Ti.Map.createView({
    height : '90%',
    mapType : Ti.Map.STANDARD_TYPE,
    animate : true,
    regionFit : true,
    userLocation : true,
    region : {
        latitudeDelta : 0.05,
        longitudeDelta : 0.05
    }
});


var xhr = Ti.Network.createHTTPClient({
    onload : function(e) {
        var data = JSON.parse(this.responseText);

        for (var i = 0; i < data.length; i++) {
            pin[i] = Titanium.Map.createAnnotation({
                latitude : data.rows[i][7],
                longitude : data.rows[i][8],
                title : data.rows[i][3],
                subtitle : data.rows[i][9],
                pincolor : Titanium.Map.ANNOTATION_PURPLE,
                animate : true,
                myid : i
            });
            mapview.addAnnotation(pin[i]);
        }
        Ti.API.debug(this.responseText);
        alert('success');
    },
    onerror : function(e) {
        Ti.API.debug(e.error);
        alert('error');
    },
    timeout : 5000
});

xhr.open("GET", query);
xhr.send();

win.add(mapview);
win.open();

很感谢任何形式的帮助!

4

1 回答 1

0

终于让它工作了。将问题中的代码调整为:

var mapview = Ti.Map.createView({
    height : '90%',
    mapType : Ti.Map.STANDARD_TYPE,
    animate : true,
    regionFit : true,
    userLocation : true,
    region : {
        latitudeDelta : 1.7,
        longitudeDelta : 1.7
    }
});

win.add(mapview);


var annotations = [];

var query = '..JSON URL..';
var xhr = Ti.Network.createHTTPClient({
    onload : function(e) {
        var data = JSON.parse(this.responseText);
        Ti.API.info('Datum=' + data.rows[1][0]);
        for (var i = 0; i < data.rows.length; i++) {
            var marker = Titanium.Map.createAnnotation({
                latitude : data.rows[i][7],
                longitude : data.rows[i][8],
                title : data.rows[i][3],
                subtitle : data.rows[i][9],
                pincolor: Ti.Map.ANNOTATION_GREEN,
                animate : true,
                myid : i
            });

            mapview.addAnnotation(marker);

        }
        Ti.API.debug(this.responseText);
    },
    onerror : function(e) {
        Ti.API.debug(e.error);
        alert('error');
    },
    timeout : 5000
});

xhr.open("GET", query);
xhr.send();

这将使用多个注释填充地图。

于 2013-07-21T22:09:18.030 回答