summaryrefslogtreecommitdiff
path: root/src/mbgl/style/sources/geojson_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/sources/geojson_source.cpp')
-rw-r--r--src/mbgl/style/sources/geojson_source.cpp17
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;
}