dragonpilot - 基於 openpilot 的開源駕駛輔助系統
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4 KiB

// Copyright (C) 2023 MapLibre contributors
// Copyright (C) 2017 The Qt Company Ltd.
// Copyright (C) 2017 Mapbox, Inc.
// SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#pragma once
#include "export_location.hpp"
#include <QMapLibre/Map>
#include <QMapLibre/StyleParameter>
#include <QtLocation/private/qgeomap_p.h>
namespace QMapLibre {
class QGeoMapMapLibrePrivate;
class Q_MAPLIBRE_LOCATION_EXPORT QGeoMapMapLibre : public QGeoMap {
Q_OBJECT
Q_DECLARE_PRIVATE(QGeoMapMapLibre)
public:
explicit QGeoMapMapLibre(QGeoMappingManagerEngine *engine, QObject *parent = nullptr);
~QGeoMapMapLibre() override;
[[nodiscard]] Capabilities capabilities() const override;
void setSettings(const Settings &settings);
void setMapItemsBefore(const QString &mapItemsBefore);
void addStyleParameter(StyleParameter *parameter);
void removeStyleParameter(StyleParameter *parameter);
void clearStyleParameters();
private Q_SLOTS:
// QMapLibre
void onMapChanged(Map::MapChange);
// QDeclarativeGeoMapItemBase
void onMapItemPropertyChanged();
void onMapItemSubPropertyChanged();
void onMapItemUnsupportedPropertyChanged();
void onMapItemGeometryChanged();
// StyleParameter
void onStyleParameterUpdated(StyleParameter *parameter);
private:
QSGNode *updateSceneGraph(QSGNode *oldNode, QQuickWindow *window) override;
};
} // namespace QMapLibre