[node] Added set{Bearing,Center} + updated -test-suite
This gives the ability to pan and/or rotate the map in a posterior step after initial render for testing purposes.
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
"express": "^4.11.1",
|
||||
"mapbox-gl-shaders": "mapbox/mapbox-gl-shaders#98a56d538b11fb331aa67a6d632d6ecd6821b007",
|
||||
"mapbox-gl-style-spec": "mapbox/mapbox-gl-style-spec#7f62a4fc9f21e619824d68abbc4b03cbc1685572",
|
||||
"mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#694f0d0728f229d64d1639dc5ee7aff7f4b8ca41",
|
||||
"mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#0f6781a9fcd44d350ba8504060f74869c194cd4c",
|
||||
"mkdirp": "^0.5.1",
|
||||
"node-cmake": "^1.2.1",
|
||||
"request": "^2.72.0",
|
||||
|
||||
@@ -61,6 +61,8 @@ void NodeMap::Init(v8::Local<v8::Object> target) {
|
||||
Nan::SetPrototypeMethod(tpl, "setLayoutProperty", SetLayoutProperty);
|
||||
Nan::SetPrototypeMethod(tpl, "setPaintProperty", SetPaintProperty);
|
||||
Nan::SetPrototypeMethod(tpl, "setFilter", SetFilter);
|
||||
Nan::SetPrototypeMethod(tpl, "setCenter", SetCenter);
|
||||
Nan::SetPrototypeMethod(tpl, "setBearing", SetBearing);
|
||||
|
||||
Nan::SetPrototypeMethod(tpl, "dumpDebugLogs", DumpDebugLogs);
|
||||
Nan::SetPrototypeMethod(tpl, "queryRenderedFeatures", QueryRenderedFeatures);
|
||||
@@ -674,6 +676,46 @@ void NodeMap::SetFilter(const Nan::FunctionCallbackInfo<v8::Value>& info) {
|
||||
layer->accept(SetFilterVisitor { filter });
|
||||
}
|
||||
|
||||
void NodeMap::SetCenter(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]->IsArray()) {
|
||||
return Nan::ThrowTypeError("First argument must be an array");
|
||||
}
|
||||
|
||||
auto center = info[0].As<v8::Array>();
|
||||
double latitude = 0;
|
||||
double longitude = 0;
|
||||
if (center->Length() > 0) { longitude = Nan::Get(center, 0).ToLocalChecked()->NumberValue(); }
|
||||
if (center->Length() > 1) { latitude = Nan::Get(center, 1).ToLocalChecked()->NumberValue(); }
|
||||
|
||||
try {
|
||||
nodeMap->map->setLatLng(mbgl::LatLng { latitude, longitude });
|
||||
} catch (const std::exception &ex) {
|
||||
return Nan::ThrowError(ex.what());
|
||||
}
|
||||
|
||||
info.GetReturnValue().SetUndefined();
|
||||
}
|
||||
|
||||
void NodeMap::SetBearing(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]->IsNumber()) {
|
||||
return Nan::ThrowTypeError("First argument must be a number");
|
||||
}
|
||||
|
||||
try {
|
||||
nodeMap->map->setBearing(info[0]->NumberValue());
|
||||
} catch (const std::exception &ex) {
|
||||
return Nan::ThrowError(ex.what());
|
||||
}
|
||||
|
||||
info.GetReturnValue().SetUndefined();
|
||||
}
|
||||
|
||||
void NodeMap::DumpDebugLogs(const Nan::FunctionCallbackInfo<v8::Value>& info) {
|
||||
auto nodeMap = Nan::ObjectWrap::Unwrap<NodeMap>(info.Holder());
|
||||
if (!nodeMap->map) return Nan::ThrowError(releasedMessage());
|
||||
|
||||
@@ -37,6 +37,8 @@ public:
|
||||
static void SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void SetPaintProperty(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void SetFilter(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void SetCenter(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void SetBearing(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void DumpDebugLogs(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
static void QueryRenderedFeatures(const Nan::FunctionCallbackInfo<v8::Value>&);
|
||||
|
||||
|
||||
@@ -114,6 +114,8 @@ test('Map', function(t) {
|
||||
'setLayoutProperty',
|
||||
'setPaintProperty',
|
||||
'setFilter',
|
||||
'setCenter',
|
||||
'setBearing',
|
||||
'dumpDebugLogs',
|
||||
'queryRenderedFeatures'
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user