Регион карты не помещается в MapView of Titanium при захвате события regionChanged - PullRequest
0 голосов
/ 08 ноября 2010

Я пишу демо-карту в 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)
{

});

В этом случае я даже ничего не написал. В симуляторе это работает хорошо как в первом случае, но в реальном телефоне уровень масштабирования карты внезапно становится максимальным. Хотя я установил latitudeDelta = 1, уровень масштабирования карты по-прежнему максимальный, как если бы latitudeDelta = 0,001.

Итак, в чем корень этой ошибки? Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 09 ноября 2010

OK.Я нашел корень этой ошибки.Просто нужно установить regionFit:true и уровень масштабирования карты правильный.

...