2011-12-15 22 views
14

Estoy desarrollando una aplicación en la que necesito agregar el mapa de Google en nuestra aplicación. Estoy usando Qt con diseño de interfaz de usuario y no estoy usando QML. ¿Hay alguna API para Qt para Symbian o cualquier archivo que se agregue al puerto en mi aplicación?¿Cómo agregar Google Maps en mi aplicación en Qt?

+0

No estoy seguro. Tal vez, puedes usar QWebView. –

+0

me explicarías más por favor.,., Lwin Htoo Ko – Naufal

Respuesta

3
QWebView *webView = new QWebView(parentWidget); 
    webView->resize(1000,500); 
    webView->move(10,10); 
    QString gMapURL = "England"; // this is where you want to point 
    gMapURL = "http://maps.google.com.sg/maps?q="+gMapURL+"&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&hl=en&sa=N&tab=wl"; 
    webView->setUrl(QUrl(gMapURL)); 

Este es un tipo de forma barata de obtener el mapa de google en Qt. Tal vez, hay alguna forma más inteligente de obtenerlo utilizando los servicios web API de Google Maps. http://code.google.com/apis/maps/documentation/webservices/index.html

+0

Hola, estoy obteniendo la ubicación y la dirección de un valor analizado. cuando presiono el botón de mapa, ¡necesito mostrar esa ubicación en el mapa! ¿Es eso posible en Qt para Symbian ??? alguien me puede ayudar con las API a puerto en el proyecto – Naufal

+0

FYI http://www.developer.nokia.com/Community/Wiki/How_to_show_city_locations_in_a_map_using_Qt_and_Google_Maps_API http: // doc .qt.nokia.com/qtmobility-1.1-tp/fetchgooglemaps.html –

+1

¡Hola, hay un código postal para esto! Voy a probar este código ahora. ,,. Lwin Htoo Ko – Naufal

0

Tengo un proyecto muy pequeño (https://github.com/skhaz/qtgps) que utiliza Google Maps en un qwebview y algunos javascript para interactuar

+0

Hola, gracias por tus respuestas ... intentaré y te dejaré saber alguna vez ... :) – Naufal

+1

Probé tu proyecto pero siempre segfaults al cargar la página web. Incluso falla si cambio la web de Google Maps a Google. –

2

He estado trabajando en mi proyecto universitario en Qt utilizando Google Maps como el widget principal. Básicamente, es mejor cargar un archivo HTML externo en QWebView que contiene el código JavaScript necesario para cargar el mapa. Esta práctica le permite definir funciones de JavaScript dentro de un archivo HTML que pueden controlar el mapa (marcadores, etc.) que luego puede llamar fácilmente a su código Qt. Sin embargo, hay una trampa. Cuando cargue el mapa en su widget QWebView, no podrá interactuar con él. Para deshacerse de este problema tendrá que crear una clase que hereda QWebPage que finge agente de usuario, por ejemplo:

class myWebPage : virtual public QWebPage 
{ 
    virtual QString userAgentForUrl(const QUrl& url) const 
    { 
     return "Chrome/1.0"; 
    } 
}; 

Usted tendrá que crear una clase que hereda QWebView y establecer esta clase página principal de nuevo instancia de la clase myWebPage. El siguiente paso es agregar un widget QWebView en su Designer. Promocione este widget a su clase personalizada QWebView. Entonces tendrás un mapa completamente funcional.

API
8

-qt para Google Mapas-
Desde: http://www.ics.com/technologies/qt_google_apis

  • QML & Qt Google Maps: http://code.google.com/p/qt-google-maps/wiki/About

    funciones de la API utilizada en este proyecto:

    • Cre comieron y mapa de sintonía
    • Crear marcas de posición (marcadores)
    • Goto marca de posición
  • Qt Google Places: http://code.google.com/p/qt-google-places/wiki/About

    funciones de la API utilizadas en este proyecto:

    • Crear y ajustar el mapa
    • autocompletado de direcciones de búsqueda
    • obtener coordenadas por dirección
    • Buscar lugares por nombre, tipo y localización
    • Obtener detalles de un lugar
    • Agregar nuevo lugar usuario
    • lugar Borrar usuario
    • Agregar nuevo evento
    • Borrar el evento
  • QML & Qt Google Latitud: http://code.google.com/p/qt-google-latitude/wiki/About

    funciones de la API utilizadas en este proyecto:

    • crear y asignar sintonía
    • Crear marcas de posición (marcadores)
    • Obtener ubicación actual
    • Insertar ubicación actual
    • Obtener historial de locat ión
    • Insertar para la historia de la ubicación
    • Goto dirección
0

Si usted podría utilizar otros proveedores de mapas, hay ahora QtLocation módulo (actualmente Previw técnico como del momento de escribir para Qt 5.5) que puede representar mapas HERE, Mapbox y OpenStreetMap, y también puede crear su propio complemento para otros proveedores.

Aunque lamentablemente, Google Maps no es compatible, y se parece a it's not going to happen en absoluto debido a las Condiciones de Google Maps & Condiciones.

1

El uso de QWebView probablemente funcione, pero no tengo idea de si la interacción puede tener lugar entre Google Maps y su propio código.

Mi proyecto se basa en el código de qt-google-maps. Todavía se puede encontrar en el Código Archivo de Google:

recuerdo que tuve que cambiar un poco debido a que el código se basa en la versión 2 de los mapas de Google API, y ahora solo la versión 3 fue compatible. Pero incluso eso fue bastante fácil. Veo que el "nuevo" código ahora también incorpora la versión 3.

En GitHub también encontré un project that uses the code, but made a QT5-version y ha estado activo hasta hace un año, por lo que probablemente tenga más posibilidades de encontrar código de trabajo allí.

En mi GitHub personal, decidí seguir usando QT4 y la interacción con Google Maps funciona bastante bien. Here is the latest version, pero el código es probablemente un poco desordenado e incomprensible debido a la falta de tiempo para trabajar en él con más profundidad (lo siento por eso), así que es mejor comenzar from this commit. Tiene la versión básica de qt-google-maps desde 2012, actualizada por mí para Google Maps APIv3 (por lo que habrá algunas diferencias con el primer enlace que publiqué aquí), y no demasiado de mi código personal en él.

Asegúrese de leer el compile instructions.

Cuestiones relacionadas