openpilot v0.9.6 release
date: 2024-02-21T23:02:42 master commit: 0b4d08fab8e35a264bc7383e878538f8083c33e5
This commit is contained in:
205
third_party/maplibre-native-qt/include/map.hpp
vendored
Normal file
205
third_party/maplibre-native-qt/include/map.hpp
vendored
Normal file
@@ -0,0 +1,205 @@
|
||||
// Copyright (C) 2023 MapLibre contributors
|
||||
// Copyright (C) 2019 Mapbox, Inc.
|
||||
|
||||
// SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
#ifndef QMAPLIBRE_MAP_H
|
||||
#define QMAPLIBRE_MAP_H
|
||||
|
||||
#include <QMapLibre/Export>
|
||||
#include <QMapLibre/Settings>
|
||||
#include <QMapLibre/Types>
|
||||
|
||||
#include <QtCore/QMargins>
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QPointF>
|
||||
#include <QtCore/QSize>
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtGui/QImage>
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
|
||||
namespace QMapLibre {
|
||||
|
||||
class MapPrivate;
|
||||
|
||||
class Q_MAPLIBRE_CORE_EXPORT Map : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(double latitude READ latitude WRITE setLatitude)
|
||||
Q_PROPERTY(double longitude READ longitude WRITE setLongitude)
|
||||
Q_PROPERTY(double zoom READ zoom WRITE setZoom)
|
||||
Q_PROPERTY(double bearing READ bearing WRITE setBearing)
|
||||
Q_PROPERTY(double pitch READ pitch WRITE setPitch)
|
||||
Q_PROPERTY(QString styleJson READ styleJson WRITE setStyleJson)
|
||||
Q_PROPERTY(QString styleUrl READ styleUrl WRITE setStyleUrl)
|
||||
Q_PROPERTY(double scale READ scale WRITE setScale)
|
||||
Q_PROPERTY(QMapLibre::Coordinate coordinate READ coordinate WRITE setCoordinate)
|
||||
Q_PROPERTY(QMargins margins READ margins WRITE setMargins)
|
||||
|
||||
public:
|
||||
enum MapChange {
|
||||
MapChangeRegionWillChange = 0,
|
||||
MapChangeRegionWillChangeAnimated,
|
||||
MapChangeRegionIsChanging,
|
||||
MapChangeRegionDidChange,
|
||||
MapChangeRegionDidChangeAnimated,
|
||||
MapChangeWillStartLoadingMap,
|
||||
MapChangeDidFinishLoadingMap,
|
||||
MapChangeDidFailLoadingMap,
|
||||
MapChangeWillStartRenderingFrame,
|
||||
MapChangeDidFinishRenderingFrame,
|
||||
MapChangeDidFinishRenderingFrameFullyRendered,
|
||||
MapChangeWillStartRenderingMap,
|
||||
MapChangeDidFinishRenderingMap,
|
||||
MapChangeDidFinishRenderingMapFullyRendered,
|
||||
MapChangeDidFinishLoadingStyle,
|
||||
MapChangeSourceDidChange
|
||||
};
|
||||
|
||||
enum MapLoadingFailure {
|
||||
StyleParseFailure,
|
||||
StyleLoadFailure,
|
||||
NotFoundFailure,
|
||||
UnknownFailure
|
||||
};
|
||||
|
||||
// Determines the orientation of the map.
|
||||
enum NorthOrientation {
|
||||
NorthUpwards, // Default
|
||||
NorthRightwards,
|
||||
NorthDownwards,
|
||||
NorthLeftwards,
|
||||
};
|
||||
|
||||
explicit Map(QObject *parent = nullptr,
|
||||
const Settings &settings = Settings(),
|
||||
const QSize &size = QSize(),
|
||||
qreal pixelRatio = 1);
|
||||
~Map() override;
|
||||
|
||||
[[nodiscard]] QString styleJson() const;
|
||||
[[nodiscard]] QString styleUrl() const;
|
||||
|
||||
void setStyleJson(const QString &);
|
||||
void setStyleUrl(const QString &);
|
||||
|
||||
[[nodiscard]] double latitude() const;
|
||||
void setLatitude(double latitude);
|
||||
|
||||
[[nodiscard]] double longitude() const;
|
||||
void setLongitude(double longitude);
|
||||
|
||||
[[nodiscard]] double scale() const;
|
||||
void setScale(double scale, const QPointF ¢er = QPointF());
|
||||
|
||||
[[nodiscard]] double zoom() const;
|
||||
void setZoom(double zoom);
|
||||
|
||||
[[nodiscard]] double minimumZoom() const;
|
||||
[[nodiscard]] double maximumZoom() const;
|
||||
|
||||
[[nodiscard]] double bearing() const;
|
||||
void setBearing(double degrees);
|
||||
void setBearing(double degrees, const QPointF ¢er);
|
||||
|
||||
[[nodiscard]] double pitch() const;
|
||||
void setPitch(double pitch);
|
||||
void pitchBy(double pitch);
|
||||
|
||||
[[nodiscard]] NorthOrientation northOrientation() const;
|
||||
void setNorthOrientation(NorthOrientation);
|
||||
|
||||
[[nodiscard]] Coordinate coordinate() const;
|
||||
void setCoordinate(const Coordinate &coordinate);
|
||||
void setCoordinateZoom(const Coordinate &coordinate, double zoom);
|
||||
|
||||
void jumpTo(const CameraOptions &);
|
||||
|
||||
void setGestureInProgress(bool inProgress);
|
||||
|
||||
void setTransitionOptions(qint64 duration, qint64 delay = 0);
|
||||
|
||||
void addAnnotationIcon(const QString &name, const QImage &sprite);
|
||||
|
||||
AnnotationID addAnnotation(const Annotation &annotation);
|
||||
void updateAnnotation(AnnotationID id, const Annotation &annotation);
|
||||
void removeAnnotation(AnnotationID id);
|
||||
|
||||
bool setLayoutProperty(const QString &layerId, const QString &propertyName, const QVariant &value);
|
||||
bool setPaintProperty(const QString &layerId, const QString &propertyName, const QVariant &value);
|
||||
|
||||
[[nodiscard]] bool isFullyLoaded() const;
|
||||
|
||||
void moveBy(const QPointF &offset);
|
||||
void scaleBy(double scale, const QPointF ¢er = QPointF());
|
||||
void rotateBy(const QPointF &first, const QPointF &second);
|
||||
|
||||
void resize(const QSize &size);
|
||||
|
||||
[[nodiscard]] QPointF pixelForCoordinate(const Coordinate &coordinate) const;
|
||||
[[nodiscard]] Coordinate coordinateForPixel(const QPointF &pixel) const;
|
||||
|
||||
[[nodiscard]] CoordinateZoom coordinateZoomForBounds(const Coordinate &sw, const Coordinate &ne) const;
|
||||
[[nodiscard]] CoordinateZoom coordinateZoomForBounds(const Coordinate &sw,
|
||||
const Coordinate &ne,
|
||||
double bearing,
|
||||
double pitch);
|
||||
|
||||
void setMargins(const QMargins &margins);
|
||||
[[nodiscard]] QMargins margins() const;
|
||||
|
||||
void addSource(const QString &id, const QVariantMap ¶ms);
|
||||
bool sourceExists(const QString &id);
|
||||
void updateSource(const QString &id, const QVariantMap ¶ms);
|
||||
void removeSource(const QString &id);
|
||||
|
||||
void addImage(const QString &id, const QImage &sprite);
|
||||
void removeImage(const QString &id);
|
||||
|
||||
void addCustomLayer(const QString &id,
|
||||
std::unique_ptr<CustomLayerHostInterface> host,
|
||||
const QString &before = QString());
|
||||
void addLayer(const QString &id, const QVariantMap ¶ms, const QString &before = QString());
|
||||
bool layerExists(const QString &id);
|
||||
void removeLayer(const QString &id);
|
||||
|
||||
[[nodiscard]] QVector<QString> layerIds() const;
|
||||
|
||||
void setFilter(const QString &layerId, const QVariant &filter);
|
||||
[[nodiscard]] QVariant getFilter(const QString &layerId) const;
|
||||
// When rendering on a different thread,
|
||||
// should be called on the render thread.
|
||||
void createRenderer();
|
||||
void destroyRenderer();
|
||||
void setFramebufferObject(quint32 fbo, const QSize &size);
|
||||
|
||||
public slots:
|
||||
void render();
|
||||
void setConnectionEstablished();
|
||||
|
||||
// Commit changes, load all the resources
|
||||
// and renders the map when completed.
|
||||
void startStaticRender();
|
||||
|
||||
signals:
|
||||
void needsRendering();
|
||||
void mapChanged(Map::MapChange);
|
||||
void mapLoadingFailed(Map::MapLoadingFailure, const QString &reason);
|
||||
void copyrightsChanged(const QString ©rightsHtml);
|
||||
|
||||
void staticRenderFinished(const QString &error);
|
||||
|
||||
private:
|
||||
Q_DISABLE_COPY(Map)
|
||||
|
||||
std::unique_ptr<MapPrivate> d_ptr;
|
||||
};
|
||||
|
||||
} // namespace QMapLibre
|
||||
|
||||
Q_DECLARE_METATYPE(QMapLibre::Map::MapChange);
|
||||
Q_DECLARE_METATYPE(QMapLibre::Map::MapLoadingFailure);
|
||||
|
||||
#endif // QMAPLIBRE_MAP_H
|
||||
Reference in New Issue
Block a user