【问题标题】:Show markers from JSON array on map in Titanium在 Titanium 的地图上显示来自 JSON 数组的标记
【发布时间】:2013-07-20 10:53:01
【问题描述】:

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

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();

非常感谢任何帮助!

【问题讨论】:

    标签: javascript json titanium


    【解决方案1】:

    终于搞定了。将问题中的代码调整为:

    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();
    

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

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 2017-01-05
      • 1970-01-01
      • 2021-10-21
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多