我正在开发一个Titanium应用程序,我需要在地图上显示多个标记。我通过JSON数组获取这些标记的数据,可以找到here。我没有收到任何错误,我甚至得到了“Succes”警报,但地图上仍然没有显示任何错误。
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();
非常感谢任何帮助!
答案 0 :(得分: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();
这将使用多个注释填充地图。