Russian Qt Forum

Qt => Qt Quick => Тема начата: Larry от Август 08, 2015, 13:44



Название: Qml и Google maps
Отправлено: Larry от Август 08, 2015, 13:44
Добрый день, форумчане.
Интересует вопрос, как работать с картами Google? Для nokia, osm и mapbox есть плагины, а для Google Maps не нашел. Может плохо искал, но вряд ли, перелопатил весь google. Пишу descktop приложение (Qt5.5). Пробовал через WebView, но не получается загрузить локальный файл html. Если открыть этот файл в браузере, то загружается карта. Пример нашел в инете.

Код:
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC8canfOHTXuRHe7KoJ68CJQVQSBbrAiVg&sensor=false">
    </script>
    <script type="text/javascript">
      function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng(-34.397, 150.644),
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById("map-canvas"),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map-canvas"/>
  </body>
</html>

Код:
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtWebKit 3.0
//---------------
ApplicationWindow
{
    title: qsTr("Map")
    width: 640
    height: 480
    visible: true

    WebView
    {
        id: webview
        anchors.fill: parent

        url: "file:///q:index.html"
    }
}



Помогите пожалуйста, а то не могу "въехать" как вывести карту.


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 08, 2015, 13:59
Код:
    WebView{
        id: webview
          anchors.fill: parent

          url: "test.htm"
    }
test.htm положил в ресурсы. Все загружается.


Название: Re: Qml и Google maps
Отправлено: Larry от Август 08, 2015, 17:13
Спасибо за ответ. Добавил тоже в ресурсы, но у меня ничего не открывает ???
Что может быть? Или я что-то делаю не так...После того как поменял на Qt5.5, то при использовании WebView при закрытии окна выплывает ошибка

Код:
wtf\text\AtomicString.cpp(430) : WTF::AtomicString::remove


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 08, 2015, 17:31
Попробуйте просто открыть яндекс страницу в нем.Если откроет, то вероятно все же где-то проблема у вас в путях


Название: Re: Qml и Google maps
Отправлено: Larry от Август 08, 2015, 17:35
Страницу любую открывает, кроме карты:). Попытаюсь поиграться с путями. Если у Вас загружается, то значит действительно пути...


Название: Re: Qml и Google maps
Отправлено: Larry от Август 09, 2015, 13:23
Добрый день.
Перепробовал уже все что мог. Загружается все, кроме поисковиков и их сервисов, т.е. google.com, yandex.ru и bing.com не загружаются...
Есть ли какие еще мысли, почему так происходит?


Название: Re: Qml и Google maps
Отправлено: Bepec от Август 09, 2015, 13:25
Мини вопрос - а в квике поддерживается https или он так же требует openSSL? :)


Название: Re: Qml и Google maps
Отправлено: Larry от Август 09, 2015, 13:36
С этим вопросом не разбирался, но судя по тому, что у других работает, то все должно поддерживаться...


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 09, 2015, 14:48
Попробуйте через QNetworkAccessManager загрузить, без qml. 


Название: Re: Qml и Google maps
Отправлено: Larry от Август 09, 2015, 15:58
Спасибо, попробую.


Название: Re: Qml и Google maps
Отправлено: Larry от Август 09, 2015, 16:38
Пробежался по ссылкам подряд из поисковика и подставляя в программу...получается, что действительно рубятся ссылки по https...Тогда непонятно почему у BuRn работает...непонятно.


Название: Re: Qml и Google maps
Отправлено: Bepec от Август 09, 2015, 18:07
установите openssl в систему. Мб и заработает :)
PS так то в обычном Qt можно установить игнорирование ошибок ssl, мб у него как то для квика сделано?


Название: Re: Qml и Google maps
Отправлено: Larry от Август 09, 2015, 19:40
Спасибо большое, буду заниматься этим и по окончании отпишусь.


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 10, 2015, 10:00
Ну я ничего не делал. Все из коробки стоит. Возможно действительно пакетик openssl всему виной


Название: Re: Qml и Google maps
Отправлено: Larry от Август 10, 2015, 15:23
Добрый день. Действительно всему виною был openSSL. Поставил openSSL и закинул в qt dll-ки, и все работает. Только теперь возникает вопрос как все это перенести на другой комп, т.к. все работает только из под qt creator, а при запуске из другой папки не работает, хотя вроде бы все подкинул. При запуске процесс появляется, а окна нет. Кто знает полный список зависимостей? Уже закинул все что мог!!!


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 10, 2015, 18:04
Вы можете сделать статическую сборку и не тащить библиотеки с бинарем.


Название: Re: Qml и Google maps
Отправлено: Larry от Август 10, 2015, 20:01
Тогда размер исполняемого файла будет огромный, а каждый раз обновлять такие размеры будет тяжко. :)


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 10, 2015, 21:33
Тогда размер исполняемого файла будет огромный, а каждый раз обновлять такие размеры будет тяжко. :)
Что для вас огромный ? На текущем проекте, с ядром который в дебажной версии весит больше 1.5гб, в релизе и статике + qml программа занимает 35мб


Название: Re: Qml и Google maps
Отправлено: Bepec от Август 10, 2015, 21:57
Вам нужен qt_window из папки plugins/platforms


Название: Re: Qml и Google maps
Отправлено: Larry от Август 10, 2015, 22:52
Вам нужен qt_window из папки plugins/platforms
Это уже есть. Я использовал windeployqt.exe и натравил на исполняемый файл. Он все скопировал, но видать все же не полностью (об этом уже писали). На скрине все что он подтянул, ну и я пару dll-ок добавил, но пока не запустилось, только процесс висит и нет ошибок.


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 11, 2015, 00:33
CONFIG+=console
Перекомпилируйте. Вывод в студию. Вероятно проблема в failed create opengl context, либо в либах qml


Название: Re: Qml и Google maps
Отправлено: Larry от Август 11, 2015, 14:48
выставил CONFIG += console, во вложении скрин консоли...но этот плагин у меня присутствует...положил также скрин консоли сборки...


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 11, 2015, 22:15
Вам нужно расшифровать как-то ваше сообщение об ошибке,  которое сейчас ?? ?????


Название: Re: Qml и Google maps
Отправлено: Larry от Август 11, 2015, 23:30
Подтянул на домашнем компьютере dll-ки и плагины с помощью программы LibraryCollector, удалил из переменных среды пути к qt. Сейчас собирается и ошибок пока не выдает, но т.к. стоит windows 10, то нельзя поставить virtualbox (не поддерживает) и проверить на голой оси невозможно. Завтра на рабочем посмотрю, там я поставил virtualbox и экспериментировал. Спасибо за то что помогаете:). С утра проверю и отпишусь.


Название: Re: Qml и Google maps
Отправлено: Larry от Август 12, 2015, 11:51
Проверил на голой оси. Единственное из каталогов QtQuick, QtQuick.2, QtWebKit удалил все кроме dll.


Название: Re: Qml и Google maps
Отправлено: Larry от Август 12, 2015, 12:02
Добавил в каталоги QtQuick, QtQuick.2 и QtWebKit файлы qmldir и plugins.qmltypes. Теперь не нравиться другое, но в этом случае появляется уже и окно программы, только чистое.


Название: Re: Qml и Google maps
Отправлено: BuRn от Август 12, 2015, 15:45
Не может отрендерить ваше opengl. Драйвера на видео стоят ? Запускаете без виртуальных машин ? Запускаете без рдп ?


Название: Re: Qml и Google maps
Отправлено: Larry от Август 12, 2015, 17:06
проверял на чистой оси у сотрудника, там видеокарта мощная и поддерживает opengl до версии 4. У него показало окно и вывело ошибку