我在谷歌地图的钛框架中做了一个应用程序。我在地图上有多个位置,显示为注释/精确定位。我也采用了注释的点击事件。 Annotaions将在下一个屏幕中显示tableview中的数据。当我回到Google Maps屏幕时,我必须单击两次按钮而不是一次。
查询:
1)任何人都可以帮我解决如何处理后退事件的情况,只需点击1次即可返回,而不是2次点击,并且不会在2次点击后退按钮时将数据渲染2次。同样的屏幕出现2后退按钮事件数据的时间。
2)如果我在地图上有很多注释,那么当它执行click事件时如何获取相同/特定精确定位/注释的信息,并且应该在下一个屏幕中将精确数据显示为tableview。(即如果我有FOR LOOP,并且当它向我们显示多个注释/精确定位时,所有注释应该获得所有细节,并且应该将自己的数据显示到下一个屏幕tableview。)
任何有用的代码或链接都将受到赞赏...... !!!
我在下面给出了代码段:
mapview.addEventListener('click', function(evt) {
var annotation = evt.annotation;
var title = evt.title;
var clickSource = evt.clicksource;
// alert(annotation + 'tit'+title+'clickSource'+clickSource);
// alert("Btn Pressed");
if(evt.clicksource == 'rightButton') {
Titanium.App.Properties.setString("latitude",latitude.item(0).text);
Titanium.App.Properties.setString("longitude",longitude.item(0).text);
Titanium.App.Properties.setString("city",city.item(0).text);
Titanium.App.Properties.setString("address",address.item(0).text);
Titanium.App.Properties.setString("OwnerInstitution",OwnerInstitution.item(0).text);
Titanium.App.Properties.setString("TerminalDesc",TerminalDesc.item(0).text);
Titanium.App.Properties.setString("State",state.item(0).text);
Titanium.App.Properties.setString("Zip",Zip.item(0).text);
Titanium.App.Properties.setString("Charge",Charge.item(0).text);
var tab = Titanium.UI.currentTab;
var win1 = Titanium.UI.createWindow({
url:'ATMDetails.js',
title:'ATM Details',
// latitude:win1.latitude
});
tab.open(win1, {
animated:true
});
}
});
答案 0 :(得分:2)
问题1 我没说错。
问题2 - 据我所知,您希望显示用户点击的特定注释的详细信息。 的解决方案:强> 使用for循环加载所有信息的函数定义了一个应该存储特定anotaion数据的数组。喜欢
annotations = []; //updated
for (i=0; i < yourfeedsData.length; i++) {
var detailData= [];
//Your data
var latitude = latitude.item(0).text;
// all list of your data .......
// creating annotaions
var annotaion = Titanium.Map.createAnnotation( {
title:'Your title',
animate:true
});
// pushing the data to array ..... all your values like,
detailData.push({lat:latitude,...... });
// setting data to your annotaion object
annotaion.detailData=detailData;
// creating annotation array
annotations[i] = annotaion ; //updated
}
your_mapView.addAnnotations(annotations); // updated
并在您的点击事件中,获取注释数据并将其传递给您的窗口详细信息。并使用该详细数据显示在列表中。
// get the detail data
var detailData = evt.annotation.detailData;
if(evt.clicksource == 'rightButton') {
var tab = Titanium.UI.currentTab;
var win1 = Titanium.UI.createWindow({
url:'ATMDetails.js',
title:'ATM Details',
//latitude:win1.latitude
});
// PASS THE DATA TO YOUR WINDOW
win1 .detailData = detailData;
tab.open(win1, {
animated:true
});
}