2015-01-07 7 views
0

Я новичок в разработке как C++, так и BB10 (Cascades), и у меня было трудное время, изучая полу-реализацию Blackberry QML QML.BB10 Каскады простая информация о местоположении

У меня есть приложение, над которым я работаю, и я хотел бы получить информацию о широте, долготе и других адресах телефона (город, штат, страна и т. Д.). Я пробовал несколько разных вещей, таких как регистрация существующих классов C++ для вызова из QML, но некоторые вещи недоступны в версии библиотек BB10.

Я обнаружил, что библиотека QtMobilitySubset.location 1.2, доступная в Cascades, предлагает объекты PositionSource и Address, однако я не смог получить от них какие-либо данные.

Я включил их в «attachedObjects» части документа QML:

attachedObjects: [ 
    PositionSource { 
     id: positionSource 
     updateInterval: 5000 
     active: true 
    }, 
    Place { 
     id: place 
    }, 
    Address { 
     id: address 

    } 

] 

, а затем попытался получить информацию от адреса по телефону address.state но получить пустое значение. То же самое касается positionSource.position.coordinate.longitude - нет значения.

Я попытался взглянуть на другие примеры, предоставленные Blackberry, но не смог определить, что я делаю неправильно.

Кто-нибудь знает пример, который демонстрирует использование чистого QML для получения информации о местоположении?

+0

Я знаю, что не помогаю, но, честно говоря, я предлагаю вам использовать C++ для этих вещей. Это дает вам больше контроля и просто работает намного лучше. Затем просто измените QML UI из C++ –

+0

Что дает вам идея, что место и адрес волшебным образом сделают для вас обратное геокодирование? Они этого не делают. – onion

ответ

0

В вашем файле qml import QtMobilitySubset.location 1.1 в вашем файле pro добавьте LIBS += -lQtLocationSubset -lbbcascadesmaps -lGLESv1_CM, а в вашем десктобе bar.xml убедитесь, что у вас есть отметка местоположения и вкладка «Интернет» в приложении, также убедитесь, что ваши службы определения местоположения включены в устройстве. Приведенный ниже код печатает широту и долготу при нажатии кнопки.

Container { 
    id:mainContainer 
    property string longitude 
    property string latitude 
    property variant cord 


Button:{ 
text: "Show" 
onClicked: 
    { 
    console.log("actual latitude:"+latitude+" actual longitude:"+longitude); 
    } 
} 

attachedObjects:[ 
PositionSource{ 
      id: locationPos 
      updateInterval: 1000 

      onPositionChanged: { 
       cord = locationPos.position.coordinate; 
       longitude = cord.longitude; 
       latitude = cord.latitude; 
      } 

     } 

] 


    onCreationCompleted: { 
     locationPos.start(); 
    } 
}