[core] Privatize vector_tile.hpp contents
This commit is contained in:
@@ -1,11 +1,73 @@
|
||||
#include <mbgl/tile/vector_tile.hpp>
|
||||
#include <mbgl/tile/tile_source_impl.hpp>
|
||||
#include <mbgl/tile/geometry_tile.hpp>
|
||||
#include <mbgl/style/update_parameters.hpp>
|
||||
|
||||
#include <protozero/pbf_reader.hpp>
|
||||
|
||||
#include <map>
|
||||
#include <unordered_map>
|
||||
#include <functional>
|
||||
#include <utility>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
class VectorTileLayer;
|
||||
|
||||
using pbf_iter_type = protozero::pbf_reader::const_uint32_iterator;
|
||||
using packed_iter_type = std::pair<pbf_iter_type,pbf_iter_type>;
|
||||
|
||||
class VectorTileFeature : public GeometryTileFeature {
|
||||
public:
|
||||
VectorTileFeature(protozero::pbf_reader, const VectorTileLayer&);
|
||||
|
||||
FeatureType getType() const override { return type; }
|
||||
optional<Value> getValue(const std::string&) const override;
|
||||
std::unordered_map<std::string,Value> getProperties() const override;
|
||||
optional<uint64_t> getID() const override;
|
||||
GeometryCollection getGeometries() const override;
|
||||
|
||||
private:
|
||||
const VectorTileLayer& layer;
|
||||
optional<uint64_t> id;
|
||||
FeatureType type = FeatureType::Unknown;
|
||||
packed_iter_type tags_iter;
|
||||
packed_iter_type geometry_iter;
|
||||
};
|
||||
|
||||
class VectorTileLayer : public GeometryTileLayer {
|
||||
public:
|
||||
VectorTileLayer(protozero::pbf_reader);
|
||||
|
||||
std::size_t featureCount() const override { return features.size(); }
|
||||
util::ptr<const GeometryTileFeature> getFeature(std::size_t) const override;
|
||||
std::string getName() const override;
|
||||
|
||||
private:
|
||||
friend class VectorTile;
|
||||
friend class VectorTileFeature;
|
||||
|
||||
std::string name;
|
||||
uint32_t version = 1;
|
||||
uint32_t extent = 4096;
|
||||
std::map<std::string, uint32_t> keysMap;
|
||||
std::vector<std::reference_wrapper<const std::string>> keys;
|
||||
std::vector<Value> values;
|
||||
std::vector<protozero::pbf_reader> features;
|
||||
};
|
||||
|
||||
class VectorTile : public GeometryTile {
|
||||
public:
|
||||
VectorTile(std::shared_ptr<const std::string> data);
|
||||
|
||||
util::ptr<GeometryTileLayer> getLayer(const std::string&) const override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<const std::string> data;
|
||||
mutable bool parsed = false;
|
||||
mutable std::map<std::string, util::ptr<GeometryTileLayer>> layers;
|
||||
};
|
||||
|
||||
VectorTileData::VectorTileData(const OverscaledTileID& id_,
|
||||
std::string sourceID,
|
||||
const style::UpdateParameters& parameters,
|
||||
|
||||
@@ -1,20 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include <mbgl/tile/geometry_tile.hpp>
|
||||
#include <mbgl/tile/geometry_tile_data.hpp>
|
||||
#include <mbgl/tile/tile_id.hpp>
|
||||
#include <mbgl/tile/tile_source.hpp>
|
||||
|
||||
#include <protozero/pbf_reader.hpp>
|
||||
|
||||
#include <map>
|
||||
#include <unordered_map>
|
||||
#include <functional>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
class Tileset;
|
||||
class GeometryTile;
|
||||
|
||||
namespace style {
|
||||
class UpdateParameters;
|
||||
@@ -36,60 +27,4 @@ private:
|
||||
TileSource<VectorTileData> tileSource;
|
||||
};
|
||||
|
||||
class VectorTileLayer;
|
||||
|
||||
using pbf_iter_type = protozero::pbf_reader::const_uint32_iterator;
|
||||
using packed_iter_type = std::pair<pbf_iter_type,pbf_iter_type>;
|
||||
|
||||
class VectorTileFeature : public GeometryTileFeature {
|
||||
public:
|
||||
VectorTileFeature(protozero::pbf_reader, const VectorTileLayer&);
|
||||
|
||||
FeatureType getType() const override { return type; }
|
||||
optional<Value> getValue(const std::string&) const override;
|
||||
std::unordered_map<std::string,Value> getProperties() const override;
|
||||
optional<uint64_t> getID() const override;
|
||||
GeometryCollection getGeometries() const override;
|
||||
|
||||
private:
|
||||
const VectorTileLayer& layer;
|
||||
optional<uint64_t> id;
|
||||
FeatureType type = FeatureType::Unknown;
|
||||
packed_iter_type tags_iter;
|
||||
packed_iter_type geometry_iter;
|
||||
};
|
||||
|
||||
class VectorTileLayer : public GeometryTileLayer {
|
||||
public:
|
||||
VectorTileLayer(protozero::pbf_reader);
|
||||
|
||||
std::size_t featureCount() const override { return features.size(); }
|
||||
util::ptr<const GeometryTileFeature> getFeature(std::size_t) const override;
|
||||
std::string getName() const override;
|
||||
|
||||
private:
|
||||
friend class VectorTile;
|
||||
friend class VectorTileFeature;
|
||||
|
||||
std::string name;
|
||||
uint32_t version = 1;
|
||||
uint32_t extent = 4096;
|
||||
std::map<std::string, uint32_t> keysMap;
|
||||
std::vector<std::reference_wrapper<const std::string>> keys;
|
||||
std::vector<Value> values;
|
||||
std::vector<protozero::pbf_reader> features;
|
||||
};
|
||||
|
||||
class VectorTile : public GeometryTile {
|
||||
public:
|
||||
VectorTile(std::shared_ptr<const std::string> data);
|
||||
|
||||
util::ptr<GeometryTileLayer> getLayer(const std::string&) const override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<const std::string> data;
|
||||
mutable bool parsed = false;
|
||||
mutable std::map<std::string, util::ptr<GeometryTileLayer>> layers;
|
||||
};
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
Reference in New Issue
Block a user