diff options
Diffstat (limited to 'platform/node/src/node_map.cpp')
-rw-r--r-- | platform/node/src/node_map.cpp | 60 |
1 files changed, 17 insertions, 43 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 1c8bf6d1d2..9ba88193c9 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -9,6 +9,7 @@ #include <mbgl/style/conversion/source.hpp> #include <mbgl/style/conversion/layer.hpp> #include <mbgl/style/conversion/filter.hpp> +#include <mbgl/style/style.hpp> #include <mbgl/style/image.hpp> #include <mbgl/map/backend_scope.hpp> #include <mbgl/map/query.hpp> @@ -60,7 +61,6 @@ void NodeMap::Init(v8::Local<v8::Object> target) { Nan::SetPrototypeMethod(tpl, "release", Release); Nan::SetPrototypeMethod(tpl, "cancel", Cancel); - Nan::SetPrototypeMethod(tpl, "addClass", AddClass); Nan::SetPrototypeMethod(tpl, "addSource", AddSource); Nan::SetPrototypeMethod(tpl, "addLayer", AddLayer); Nan::SetPrototypeMethod(tpl, "removeLayer", RemoveLayer); @@ -214,7 +214,7 @@ void NodeMap::Load(const Nan::FunctionCallbackInfo<v8::Value>& info) { } try { - nodeMap->map->setStyleJSON(style); + nodeMap->map->getStyle().loadJSON(style); } catch (const std::exception &ex) { return Nan::ThrowError(ex.what()); } @@ -278,7 +278,7 @@ NodeMap::RenderOptions NodeMap::ParseOptions(v8::Local<v8::Object> obj) { const int length = classes->Length(); options.classes.reserve(length); for (int i = 0; i < length; i++) { - options.classes.push_back(std::string { *Nan::Utf8String(Nan::To<v8::String>(Nan::Get(classes, i).ToLocalChecked()).ToLocalChecked()) }); + options.classes.emplace_back(std::string { *Nan::Utf8String(Nan::To<v8::String>(Nan::Get(classes, i).ToLocalChecked()).ToLocalChecked()) }); } } @@ -376,10 +376,6 @@ void NodeMap::startRender(NodeMap::RenderOptions options) { view = std::make_unique<mbgl::OffscreenView>(backend.getContext(), fbSize); } - if (map->getClasses() != options.classes) { - map->setClasses(options.classes); - } - if (map->getZoom() != options.zoom) { map->setZoom(options.zoom); } @@ -532,7 +528,7 @@ void NodeMap::Cancel(const Nan::FunctionCallbackInfo<v8::Value>& info) { } void NodeMap::cancel() { - auto style = map->getStyleJSON(); + auto style = map->getStyle().getJSON(); map = std::make_unique<mbgl::Map>(backend, mbgl::Size{ 256, 256 }, pixelRatio, *this, threadpool, mbgl::MapMode::Still); @@ -540,29 +536,12 @@ void NodeMap::cancel() { // FIXME: Reload the style after recreating the map. We need to find // a better way of canceling an ongoing rendering on the core level // without resetting the map, which is way too expensive. - map->setStyleJSON(style); + map->getStyle().loadJSON(style); error = std::make_exception_ptr(std::runtime_error("Canceled")); renderFinished(); } -void NodeMap::AddClass(const Nan::FunctionCallbackInfo<v8::Value>& info) { - auto nodeMap = Nan::ObjectWrap::Unwrap<NodeMap>(info.Holder()); - if (!nodeMap->map) return Nan::ThrowError(releasedMessage()); - - if (info.Length() <= 0 || !info[0]->IsString()) { - return Nan::ThrowTypeError("First argument must be a string"); - } - - try { - nodeMap->map->addClass(*Nan::Utf8String(info[0])); - } catch (const std::exception &ex) { - return Nan::ThrowError(ex.what()); - } - - info.GetReturnValue().SetUndefined(); -} - void NodeMap::AddSource(const Nan::FunctionCallbackInfo<v8::Value>& info) { using namespace mbgl::style; using namespace mbgl::style::conversion; @@ -585,7 +564,7 @@ void NodeMap::AddSource(const Nan::FunctionCallbackInfo<v8::Value>& info) { return; } - nodeMap->map->addSource(std::move(*source)); + nodeMap->map->getStyle().addSource(std::move(*source)); } void NodeMap::AddLayer(const Nan::FunctionCallbackInfo<v8::Value>& info) { @@ -606,7 +585,7 @@ void NodeMap::AddLayer(const Nan::FunctionCallbackInfo<v8::Value>& info) { return; } - nodeMap->map->addLayer(std::move(*layer)); + nodeMap->map->getStyle().addLayer(std::move(*layer)); } void NodeMap::RemoveLayer(const Nan::FunctionCallbackInfo<v8::Value>& info) { @@ -624,7 +603,7 @@ void NodeMap::RemoveLayer(const Nan::FunctionCallbackInfo<v8::Value>& info) { return Nan::ThrowTypeError("First argument must be a string"); } - nodeMap->map->removeLayer(*Nan::Utf8String(info[0])); + nodeMap->map->getStyle().removeLayer(*Nan::Utf8String(info[0])); } void NodeMap::AddImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { @@ -660,7 +639,7 @@ void NodeMap::AddImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { return Nan::ThrowTypeError("width parameter required"); } - if (!Nan::Get(optionObject, Nan::New("pixelRatio").ToLocalChecked()).ToLocalChecked()->IsUint32()) { + if (!Nan::Get(optionObject, Nan::New("pixelRatio").ToLocalChecked()).ToLocalChecked()->IsNumber()) { return Nan::ThrowTypeError("pixelRatio parameter required"); } @@ -671,7 +650,7 @@ void NodeMap::AddImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { return Nan::ThrowTypeError("Max height and width is 1024"); } - uint32_t pixelRatio = Nan::Get(optionObject, Nan::New("pixelRatio").ToLocalChecked()).ToLocalChecked()->Uint32Value(); + float pixelRatio = Nan::Get(optionObject, Nan::New("pixelRatio").ToLocalChecked()).ToLocalChecked()->NumberValue(); auto imageBuffer = Nan::To<v8::Object>(info[1]).ToLocalChecked()->ToObject(); char * imageDataBuffer = node::Buffer::Data(imageBuffer); @@ -686,7 +665,7 @@ void NodeMap::AddImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { mbgl::UnassociatedImage cImage({ imageWidth, imageHeight}, std::move(data)); mbgl::PremultipliedImage cPremultipliedImage = mbgl::util::premultiply(std::move(cImage)); - nodeMap->map->addImage(*Nan::Utf8String(info[0]), std::make_unique<mbgl::style::Image>(std::move(cPremultipliedImage), pixelRatio)); + nodeMap->map->getStyle().addImage(std::make_unique<mbgl::style::Image>(*Nan::Utf8String(info[0]), std::move(cPremultipliedImage), pixelRatio)); } void NodeMap::RemoveImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { @@ -704,7 +683,7 @@ void NodeMap::RemoveImage(const Nan::FunctionCallbackInfo<v8::Value>& info) { return Nan::ThrowTypeError("First argument must be a string"); } - nodeMap->map->removeImage(*Nan::Utf8String(info[0])); + nodeMap->map->getStyle().removeImage(*Nan::Utf8String(info[0])); } void NodeMap::SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) { @@ -722,7 +701,7 @@ void NodeMap::SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>& info return Nan::ThrowTypeError("First argument must be a string"); } - mbgl::style::Layer* layer = nodeMap->map->getLayer(*Nan::Utf8String(info[0])); + mbgl::style::Layer* layer = nodeMap->map->getStyle().getLayer(*Nan::Utf8String(info[0])); if (!layer) { return Nan::ThrowTypeError("layer not found"); } @@ -754,7 +733,7 @@ void NodeMap::SetPaintProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) return Nan::ThrowTypeError("First argument must be a string"); } - mbgl::style::Layer* layer = nodeMap->map->getLayer(*Nan::Utf8String(info[0])); + mbgl::style::Layer* layer = nodeMap->map->getStyle().getLayer(*Nan::Utf8String(info[0])); if (!layer) { return Nan::ThrowTypeError("layer not found"); } @@ -763,12 +742,7 @@ void NodeMap::SetPaintProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) return Nan::ThrowTypeError("Second argument must be a string"); } - mbgl::optional<std::string> klass; - if (info.Length() == 4 && info[3]->IsString()) { - klass = std::string(*Nan::Utf8String(info[3])); - } - - mbgl::optional<Error> error = setPaintProperty(*layer, *Nan::Utf8String(info[1]), info[2], klass); + mbgl::optional<Error> error = setPaintProperty(*layer, *Nan::Utf8String(info[1]), info[2]); if (error) { return Nan::ThrowTypeError(error->message.c_str()); } @@ -812,7 +786,7 @@ void NodeMap::SetFilter(const Nan::FunctionCallbackInfo<v8::Value>& info) { return Nan::ThrowTypeError("First argument must be a string"); } - mbgl::style::Layer* layer = nodeMap->map->getLayer(*Nan::Utf8String(info[0])); + mbgl::style::Layer* layer = nodeMap->map->getStyle().getLayer(*Nan::Utf8String(info[0])); if (!layer) { return Nan::ThrowTypeError("layer not found"); } @@ -947,7 +921,7 @@ void NodeMap::QueryRenderedFeatures(const Nan::FunctionCallbackInfo<v8::Value>& auto layers = layersOption.As<v8::Array>(); std::vector<std::string> layersVec; for (uint32_t i=0; i < layers->Length(); i++) { - layersVec.push_back(*Nan::Utf8String(Nan::Get(layers,i).ToLocalChecked())); + layersVec.emplace_back(*Nan::Utf8String(Nan::Get(layers,i).ToLocalChecked())); } queryOptions.layerIDs = layersVec; } |