我在Titanium(iPhone)中编写了一个演示mapview。这是我从KitchenSink获得的代码:
var win = Titanium.UI.currentWindow;
var annotation = Titanium.Map.createAnnotation({
latitude:42.334537,
longitude:-71.170101,
title:"Boston College",
subtitle:'Newton Campus, Chestnut Hill, MA',
animate:true,
leftButton:'../images/atlanta.jpg'
});
var boston = {latitude:42.334537,longitude:-71.170101,latitudeDelta:0.010, longitudeDelta:0.018};
//
// CREATE MAP VIEW
//
var mapview = Titanium.Map.createView({
mapType: Titanium.Map.STANDARD_TYPE,
region: boston,
animate:true,
regionFit:true,
userLocation:true,
annotations:[annotation]
});
win.add(mapview);
它在iPhone模拟器和真实手机上运行良好。 问题是,当我捕获事件'regionChanged'时,地图区域是错误的。我的代码是:
var win = Titanium.UI.currentWindow;
var annotation = Titanium.Map.createAnnotation({
latitude:42.334537,
longitude:-71.170101,
title:"Boston College",
subtitle:'Newton Campus, Chestnut Hill, MA',
animate:true,
leftButton:'../images/atlanta.jpg'
});
var boston = {latitude:42.334537,longitude:-71.170101,latitudeDelta:0.010, longitudeDelta:0.018};
//
// CREATE MAP VIEW
//
var mapview = Titanium.Map.createView({
mapType: Titanium.Map.STANDARD_TYPE,
region: boston,
animate:true,
regionFit:true,
userLocation:true,
annotations:[annotation]
});
win.add(mapview);
// map view click event listener
mapview.addEventListener('regionChanged',function(evt)
{
});
在这种情况下,我甚至没有写任何东西。在模拟器中,它作为第一种情况很好用,但在实际手机中,地图缩放级别突然最大。虽然我设置了latitudeDelta = 1,但是地图的缩放级别仍然是最大放大,就像latitudeDelta = 0.001一样。
那么,这个bug的根源是什么?有人可以帮帮我吗?
答案 0 :(得分:2)
行。我找到了这个bug的根源。只需要设置regionFit:true
并且地图的缩放级别是正确的。