Handle snapping parameter for all plugins in NodeJs bindings, but not for Route only (#6417)
This commit is contained in:
parent
fb1bb7a15b
commit
c1d2c15995
@ -1,6 +1,7 @@
|
|||||||
# Unreleased
|
# Unreleased
|
||||||
- Changes from 5.27.1
|
- Changes from 5.27.1
|
||||||
- Misc:
|
- Misc:
|
||||||
|
- FIXED: Handle snapping parameter for all plugins in NodeJs bindings, but not for Route only. [#6417](https://github.com/Project-OSRM/osrm-backend/pull/6417)
|
||||||
- FIXED: Fix annotations=true handling in NodeJS bindings & libosrm. [#6415](https://github.com/Project-OSRM/osrm-backend/pull/6415/)
|
- FIXED: Fix annotations=true handling in NodeJS bindings & libosrm. [#6415](https://github.com/Project-OSRM/osrm-backend/pull/6415/)
|
||||||
- FIXED: Fix bindings compilation issue on the latest Node. Update NAN to 2.17.0. [#6416](https://github.com/Project-OSRM/osrm-backend/pull/6416)
|
- FIXED: Fix bindings compilation issue on the latest Node. Update NAN to 2.17.0. [#6416](https://github.com/Project-OSRM/osrm-backend/pull/6416)
|
||||||
# 5.27.1
|
# 5.27.1
|
||||||
|
@ -767,6 +767,37 @@ inline bool argumentsToParameter(const Nan::FunctionCallbackInfo<v8::Value> &arg
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Nan::Has(obj, Nan::New("snapping").ToLocalChecked()).FromJust())
|
||||||
|
{
|
||||||
|
v8::Local<v8::Value> snapping =
|
||||||
|
Nan::Get(obj, Nan::New("snapping").ToLocalChecked()).ToLocalChecked();
|
||||||
|
if (snapping.IsEmpty())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (!snapping->IsString())
|
||||||
|
{
|
||||||
|
Nan::ThrowError("Snapping must be a string: [default, any]");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const Nan::Utf8String snapping_utf8str(snapping);
|
||||||
|
std::string snapping_str{*snapping_utf8str, *snapping_utf8str + snapping_utf8str.length()};
|
||||||
|
|
||||||
|
if (snapping_str == "default")
|
||||||
|
{
|
||||||
|
params->snapping = osrm::RouteParameters::SnappingType::Default;
|
||||||
|
}
|
||||||
|
else if (snapping_str == "any")
|
||||||
|
{
|
||||||
|
params->snapping = osrm::RouteParameters::SnappingType::Any;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Nan::ThrowError("'snapping' param must be one of [default, any]");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1115,36 +1146,6 @@ argumentsToRouteParameter(const Nan::FunctionCallbackInfo<v8::Value> &args,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Nan::Has(obj, Nan::New("snapping").ToLocalChecked()).FromJust())
|
|
||||||
{
|
|
||||||
v8::Local<v8::Value> snapping =
|
|
||||||
Nan::Get(obj, Nan::New("snapping").ToLocalChecked()).ToLocalChecked();
|
|
||||||
if (snapping.IsEmpty())
|
|
||||||
return route_parameters_ptr();
|
|
||||||
|
|
||||||
if (!snapping->IsString())
|
|
||||||
{
|
|
||||||
Nan::ThrowError("Snapping must be a string: [default, any]");
|
|
||||||
return route_parameters_ptr();
|
|
||||||
}
|
|
||||||
const Nan::Utf8String snapping_utf8str(snapping);
|
|
||||||
std::string snapping_str{*snapping_utf8str, *snapping_utf8str + snapping_utf8str.length()};
|
|
||||||
|
|
||||||
if (snapping_str == "default")
|
|
||||||
{
|
|
||||||
params->snapping = osrm::RouteParameters::SnappingType::Default;
|
|
||||||
}
|
|
||||||
else if (snapping_str == "any")
|
|
||||||
{
|
|
||||||
params->snapping = osrm::RouteParameters::SnappingType::Any;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Nan::ThrowError("'snapping' param must be one of [default, any]");
|
|
||||||
return route_parameters_ptr();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool parsedSuccessfully = parseCommonParameters(obj, params);
|
bool parsedSuccessfully = parseCommonParameters(obj, params);
|
||||||
if (!parsedSuccessfully)
|
if (!parsedSuccessfully)
|
||||||
{
|
{
|
||||||
|
@ -80,6 +80,30 @@ test('table: returns buffer', function(assert) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('table: throws on invalid snapping values', function (assert) {
|
||||||
|
assert.plan(1);
|
||||||
|
var osrm = new OSRM(data_path);
|
||||||
|
var options = {
|
||||||
|
coordinates: [three_test_coordinates[0], three_test_coordinates[1]],
|
||||||
|
snapping: 'zing'
|
||||||
|
};
|
||||||
|
assert.throws(function () { osrm.table(options, function (err, response) { }); },
|
||||||
|
/'snapping' param must be one of \[default, any\]/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('table: snapping parameter passed through OK', function (assert) {
|
||||||
|
assert.plan(2);
|
||||||
|
var osrm = new OSRM(data_path);
|
||||||
|
var options = {
|
||||||
|
coordinates: [three_test_coordinates[0], three_test_coordinates[1]],
|
||||||
|
snapping: 'any'
|
||||||
|
};
|
||||||
|
osrm.table(options, function(err, table) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.ok(table['durations'], 'distances table result should exist');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
var tables = ['distances', 'durations'];
|
var tables = ['distances', 'durations'];
|
||||||
|
|
||||||
tables.forEach(function(annotation) {
|
tables.forEach(function(annotation) {
|
||||||
|
Loading…
Reference in New Issue
Block a user