0

Titanium(iPhone)でデモマップビューを作成します。これが私が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)
{

});

このイベントでは、私も何も書きませんでした。シミュレーターでは、最初のケースと同じように機能しますが、実際の電話では、マップのズームレベルが突然最大になります。緯度デルタ=1に設定しましたが、地図のズームレベルは、緯度デルタ=0.001のように最大にズームインされます。

それで、このバグの根本は何ですか?誰でも私を助けることができますか?

4

1 に答える 1

2

わかった。このバグの根本を見つけました。マップのズームレベルを設定するだけregionFit:trueで正しいです。

于 2010-11-09T08:12:10.123 に答える