QPlaceManager Class
La clase QPlaceManager proporciona la interfaz que permite a los clientes acceder a los lugares almacenados en un backend particular. Más...
| Header: | #include <QPlaceManager> |
| qmake: | QT += location |
| Inherits: | QObject |
Funciones públicas
| virtual | ~QPlaceManager() |
| QPlaceCategory | category(const QString &categoryId) const |
| QList<QPlaceCategory> | childCategories(const QString &parentId = QString()) const |
| QStringList | childCategoryIds(const QString &parentId = QString()) const |
| QPlace | compatiblePlace(const QPlace &original) const |
| QPlaceContentReply * | getPlaceContent(const QPlaceContentRequest &request) const |
| QPlaceDetailsReply * | getPlaceDetails(const QString &placeId) const |
| QPlaceReply * | initializeCategories() |
| QList<QLocale> | locales() const |
| QString | managerName() const |
| int | managerVersion() const |
| QPlaceMatchReply * | matchingPlaces(const QPlaceMatchRequest &request) const |
| QString | parentCategoryId(const QString &categoryId) const |
| QPlaceIdReply * | removeCategory(const QString &categoryId) |
| QPlaceIdReply * | removePlace(const QString &placeId) |
| QPlaceIdReply * | saveCategory(const QPlaceCategory &category, const QString &parentId = QString()) |
| QPlaceIdReply * | savePlace(const QPlace &place) |
| QPlaceSearchReply * | search(const QPlaceSearchRequest &request) const |
| QPlaceSearchSuggestionReply * | searchSuggestions(const QPlaceSearchRequest &request) const |
| void | setLocale(const QLocale &locale) |
| void | setLocales(const QList<QLocale> &locales) |
Señales
| void | categoryAdded(const QPlaceCategory &category, const QString &parentId) |
| void | categoryRemoved(const QString &categoryId, const QString &parentId) |
| void | categoryUpdated(const QPlaceCategory &category, const QString &parentId) |
| void | dataChanged() |
| void | errorOccurred(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString()) |
| void | finished(QPlaceReply *reply) |
| void | placeAdded(const QString &placeId) |
| void | placeRemoved(const QString &placeId) |
| void | placeUpdated(const QString &placeId) |
Descripción detallada
La siguiente tabla ofrece una visión general de la funcionalidad proporcionada por el QPlaceManager
| Funcionalidad | Descripción |
|---|---|
| Búsqueda de lugares | Utilizando un conjunto de parámetros como un término de búsqueda y un área de búsqueda, se pueden devolver al usuario lugares relevantes. |
| Categorías | Los lugares pueden clasificarse en diferentes categorías. El gestor permite acceder a estas categorías. |
| Sugerencias de términos de búsqueda | Dado un término de búsqueda parcialmente completo, se puede ofrecer una lista de posibles términos de búsqueda. |
| Recomendaciones | Dado un lugar existente, se puede sugerir al usuario un conjunto de lugares similares recomendados. |
| Contenido enriquecido | El contenido enriquecido, como imágenes, reseñas, etc., puede recuperarse de forma paginada. |
| Gestión de lugares o categorías | Los lugares y las categorías pueden guardarse y eliminarse. Es posible enviar notificaciones cuando esto ocurra. |
| Localización | Se pueden especificar diferentes localizaciones para devolver datos de lugares en diferentes idiomas. |
Obtención de una instancia de QPlaceManager
La creación de un QPlaceManager es facilitada por QGeoServiceProvider. Ver Inicializando un gestor para un ejemplo de como crear un gestor.
Interfaz Asíncrona
La clase QPlaceManager proporciona una abstracción del datastore que contiene información de lugares. Las funciones proporcionadas por QPlaceManager son principalmente asíncronas y siguen un modelo de petición-respuesta. Típicamente se da una petición al gestor, consistente en un conjunto de parámetros y se crea un objeto de respuesta. El objeto de respuesta tiene una señal para notificar cuando se realiza la solicitud, y una vez completada, la respuesta contiene los resultados de la solicitud, junto con los errores que se produjeron, si los hubiere.
Una petición asíncrona se maneja generalmente de la siguiente manera:
//1) Hacer una petición apropiadaQPlaceSearchRequest searchRequest; searchRequest.setSearchTerm("helado"); searchRequest.setSearchArea(QGeoCircle(QGeoCoordinate(12.34, 56.78)));//2) Utiliza el gestor para iniciar una petición y recuperar un objeto de respuestaQPlaceSearchReply * searchReply = manager->search(searchRequest);//3) Conectar el objeto de respuesta a un slot que se invoca al finalizar la operaciónconnect(searchReply, &QPlaceSearchReply::finished, this, &RequestHandler::processSearchReply); ... ...//4) Hacer que la ranura procese adecuadamente los resultados de la operaciónvoid processSearchReply() { if (searchReply->error() == QPlaceReply::NoError) { for(const QPlaceSearchResult &result: searchReply->results()) { if (result.type() == QPlaceSearchResult::ColocarResultado) qDebug() << "Title:" << result.title(); } }//5) Descarta el objeto rely cuando hayas terminado. searchReply->deleteLater(); searchReply = nullptr; }
Ver Operaciones Comunes para una lista de ejemplos que demuestran como se usa el QPlaceManger.
Inicialización de Categorías
En algún momento durante el arranque de una aplicación, la función initializeCategories() debe ser llamada para configurar las categorías. Inicializar las categorías permite el uso de las siguientes funciones:
- QPlaceManager::childCategories()
- QPlaceManager::category()
- QPlaceManager::parentCategoryId()
- QPlaceManager::childCategoryIds();
Si es necesario actualizar o recargar las categorías, se puede volver a llamar a la función initializeCategories().
Documentación de las funciones miembro
[virtual noexcept] QPlaceManager::~QPlaceManager()
Destruye el gestor. Este destructor es utilizado internamente por QGeoServiceProvider y nunca debe ser llamado en el código de la aplicación.
QPlaceCategory QPlaceManager::category(const QString &categoryId) const
Devuelve la categoría correspondiente a la dirección categoryId.
[signal] void QPlaceManager::categoryAdded(const QPlaceCategory &category, const QString &parentId)
Esta señal se emite si se ha añadido un category al almacén de datos del gestor. El padre de category se especifica en parentId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
[signal] void QPlaceManager::categoryRemoved(const QString &categoryId, const QString &parentId)
Esta señal se emite cuando la categoría correspondiente a categoryId ha sido eliminada del almacén de datos del gestor. El padre de la categoría eliminada se especifica en parentId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
[signal] void QPlaceManager::categoryUpdated(const QPlaceCategory &category, const QString &parentId)
Esta señal se emite si se ha modificado una category en el almacén de datos del gestor. El padre de la categoría modificada se especifica en parentId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
QList<QPlaceCategory> QPlaceManager::childCategories(const QString &parentId = QString()) const
Devuelve una lista de categorías que son hijas de la categoría correspondiente a parentId. Si parentId está vacía, se devuelven todas las categorías de nivel superior.
QStringList QPlaceManager::childCategoryIds(const QString &parentId = QString()) const
Devuelve los identificadores de categoría hija de la categoría correspondiente a parentId. Si parentId está vacío, se devuelven todos los identificadores de categoría de nivel superior.
QPlace QPlaceManager::compatiblePlace(const QPlace &original) const
Devuelve una versión podada o modificada del lugar original que se puede guardar en este gestor.
En la versión modificada sólo están presentes los detalles del lugar que admite este gestor. Los datos específicos del gestor, como el id del lugar, no se copian de original.
[signal] void QPlaceManager::dataChanged()
Esta señal es emitida por el gestor si se producen cambios a gran escala en su almacén de datos subyacente y el gestor considera que estos cambios son lo suficientemente radicales como para requerir que los clientes vuelvan a cargar todos los datos.
Si se emite la señal, no se emitirán otras señales para los cambios asociados.
Esta señal sólo es emitida por gestores que soporten QPlaceManager::NotificationsFeature.
[signal] void QPlaceManager::errorOccurred(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString())
Esta señal se emite cuando se ha detectado un error en el procesamiento de reply. Probablemente le seguirá la señal QPlaceManager::finished() .
El error se describirá mediante el código de error error. Si errorString no está vacío, contendrá una descripción textual del error destinada a los desarrolladores y no a los usuarios finales.
Esta señal y QPlaceReply::errorOccurred() se emitirán al mismo tiempo.
Nota: No elimine el objeto reply de la ranura conectada a esta señal. Utilice deleteLater() en su lugar.
[signal] void QPlaceManager::finished(QPlaceReply *reply)
Esta señal se emite cuando reply ha terminado de procesar.
Si reply->error() es igual a QPlaceReply::NoError entonces el procesamiento ha finalizado con éxito.
Esta señal y QPlaceReply::finished() se emitirán al mismo tiempo.
Nota: No elimine el objeto reply en la ranura conectada a esta señal. Utilice deleteLater() en su lugar.
QPlaceContentReply *QPlaceManager::getPlaceContent(const QPlaceContentRequest &request) const
Recupera el contenido de un lugar según los parámetros especificados en request.
Consulte Recuperación de contenido enriquecido para ver un ejemplo de uso.
QPlaceDetailsReply *QPlaceManager::getPlaceDetails(const QString &placeId) const
Recupera los detalles del lugar correspondiente a la dirección placeId.
Consulte Obtener detalles de lugar para ver un ejemplo de uso.
QPlaceReply *QPlaceManager::initializeCategories()
Inicializa las categorías del gestor.
Consulte Uso de categorías para ver un ejemplo de uso.
QList<QLocale> QPlaceManager::locales() const
Devuelve una lista de localizaciones preferidas. Las configuraciones regionales se utilizan para indicar al gestor en qué idioma deben devolverse los detalles del lugar y la categoría.
Si no se puede utilizar la primera configuración regional especificada, el gestor pasa a la siguiente y así sucesivamente. Es posible que algunos gestores no admitan un conjunto de configuraciones regionales definidas de forma rígida. Un ejemplo arbitrario es que algunos lugares de Francia podrían tener localizaciones en francés e inglés, mientras que ciertas zonas de América sólo podrían tener disponible la localización en inglés. En este ejemplo, el conjunto de localizaciones admitidas depende del contexto del lugar de búsqueda.
Si el gestor no puede acomodar ninguna de las localizaciones preferidas, el gestor vuelve a utilizar un idioma soportado que es específico del backend.
La compatibilidad con las configuraciones regionales puede variar de un proveedor a otro. Para aquellos que sí lo soportan, por defecto, la configuración regional global por defecto se establece como la única configuración regional del gestor.
Para los gestores que no soportan locales, la lista de locales está siempre vacía.
Véase también setLocales().
QString QPlaceManager::managerName() const
Devuelve el nombre del gestor
int QPlaceManager::managerVersion() const
Devuelve la versión del gestor.
QPlaceMatchReply *QPlaceManager::matchingPlaces(const QPlaceMatchRequest &request) const
Devuelve una respuesta que contiene una lista de lugares que corresponden/coinciden con los especificados en request. Los lugares especificados en la solicitud proceden de un gestor diferente.
QString QPlaceManager::parentCategoryId(const QString &categoryId) const
Devuelve el identificador de categoría padre de la categoría correspondiente a categoryId.
[signal] void QPlaceManager::placeAdded(const QString &placeId)
Esta señal se emite si se ha añadido un lugar al almacén de datos del motor de gestión. El lugar concreto añadido se especifica en placeId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
[signal] void QPlaceManager::placeRemoved(const QString &placeId)
Esta señal se emite si se ha eliminado un lugar del almacén de datos del gestor. El lugar concreto que se ha eliminado se especifica en placeId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
[signal] void QPlaceManager::placeUpdated(const QString &placeId)
Esta señal se emite si se ha modificado un lugar en el almacén de datos del gestor. El lugar concreto modificado se especifica en placeId.
Esta señal sólo la emiten los gestores que soportan QPlaceManager::NotificationsFeature.
Véase también dataChanged().
QPlaceIdReply *QPlaceManager::removeCategory(const QString &categoryId)
Elimina del gestor la categoría correspondiente a categoryId.
Consulte Eliminar una categoría para ver un ejemplo de uso.
QPlaceIdReply *QPlaceManager::removePlace(const QString &placeId)
Elimina del gestor el lugar correspondiente a placeId.
Véase Eliminar un lugar cpp para ver un ejemplo de uso.
QPlaceIdReply *QPlaceManager::saveCategory(const QPlaceCategory &category, const QString &parentId = QString())
Guarda un category que es hijo de la categoría especificada por parentId. Un parentId vacío significa que category se guarda como categoría de nivel superior.
Consulte Guardar una categoría para ver un ejemplo de uso.
QPlaceIdReply *QPlaceManager::savePlace(const QPlace &place)
Guarda un place especificado.
Véase Guardar un lugar cpp para un ejemplo de uso.
QPlaceSearchReply *QPlaceManager::search(const QPlaceSearchRequest &request) const
Busca lugares según los parámetros especificados en request.
Consulte Descubrimiento/Búsqueda para ver un ejemplo de uso.
QPlaceSearchSuggestionReply *QPlaceManager::searchSuggestions(const QPlaceSearchRequest &request) const
Solicita un conjunto de sugerencias de términos de búsqueda según los parámetros especificados en request. request puede contener el término de búsqueda incompleto, junto con otros datos como un área de búsqueda para acotar los resultados relevantes.
Consulte Sugerencias de búsqueda para ver un ejemplo de uso.
void QPlaceManager::setLocale(const QLocale &locale)
Función de conveniencia que establece la lista de configuraciones regionales preferidas del gestor en un único locale.
void QPlaceManager::setLocales(const QList<QLocale> &locales)
Establece la lista de preferidos locales.
Véase también locales().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.