捕获事件'regionChanged'时,Map区域不适合Titanium的MapView

时间:2010-11-08 11:24:35

标签: android-mapview titanium

我在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的根源是什么?有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

行。我找到了这个bug的根源。只需要设置regionFit:true并且地图的缩放级别是正确的。