diff options
Diffstat (limited to 'src/mbgl/style/sources/geojson_source.cpp')
-rw-r--r-- | src/mbgl/style/sources/geojson_source.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mbgl/style/sources/geojson_source.cpp b/src/mbgl/style/sources/geojson_source.cpp index 4e3478322d..b626855d57 100644 --- a/src/mbgl/style/sources/geojson_source.cpp +++ b/src/mbgl/style/sources/geojson_source.cpp @@ -10,7 +10,8 @@ namespace mbgl { namespace style { GeoJSONSource::GeoJSONSource(const std::string& id, const GeoJSONOptions& options) - : Source(makeMutable<Impl>(std::move(id), options)) { + : Source(makeMutable<Impl>(std::move(id), options)), + stateChanges(makeMutable<std::vector<FeatureStateChange>>()) { } GeoJSONSource::~GeoJSONSource() = default; @@ -36,6 +37,20 @@ void GeoJSONSource::setGeoJSON(const mapbox::geojson::geojson& geoJSON) { observer->onSourceChanged(*this); } +void GeoJSONSource::setFeatureState(const FeatureIdentifier& featureId, const std::string& key, const mbgl::Value& value) { + if ( featureId.valid() && !key.empty()) { + stateChanges->emplace_back(FeatureStateChange::ChangeType::Insert, featureId, key, value); +// observer->onSourceChanged(*this); + } +} + +Immutable<std::vector<FeatureStateChange>> GeoJSONSource::collectFeatureStates() { + Immutable<std::vector<FeatureStateChange>> immutable(std::move(stateChanges)); + stateChanges = makeMutable<std::vector<FeatureStateChange>>(); + printf("!)!)! Collecting feature state!@$!@$\n"); + return immutable; +} + optional<std::string> GeoJSONSource::getURL() const { return url; } |