Actually expose snapping in node bindings.
This commit is contained in:
parent
cb2a46b8d9
commit
6c37b71046
@ -692,6 +692,35 @@ inline bool argumentsToParameter(const Nan::FunctionCallbackInfo<v8::Value> &arg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (obj->Has(Nan::New("snapping").ToLocalChecked()))
|
||||||
|
{
|
||||||
|
v8::Local<v8::Value> snapping = obj->Get(Nan::New("snapping").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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -944,35 +973,6 @@ argumentsToRouteParameter(const Nan::FunctionCallbackInfo<v8::Value> &args,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj->Has(Nan::New("snapping").ToLocalChecked()))
|
|
||||||
{
|
|
||||||
v8::Local<v8::Value> snapping = obj->Get(Nan::New("snapping").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)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "osrm",
|
"name": "osrm",
|
||||||
"version": "5.21.0-customsnapping.1",
|
"version": "5.21.0-customsnapping.2",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.",
|
"description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -48,6 +48,21 @@ test('table: test annotations paramater combination', function(assert) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('table: snapping parameter passed through OK', function(assert) {
|
||||||
|
assert.plan(2);
|
||||||
|
var osrm = new OSRM(data_path);
|
||||||
|
var options = {
|
||||||
|
coordinates: [[7.448205209414596,43.754001097311544],[7.447122039202185,43.75306156811368]],
|
||||||
|
annotations: ['duration', 'distance'],
|
||||||
|
snapping: 'any'
|
||||||
|
};
|
||||||
|
console.log(options);
|
||||||
|
osrm.table(options, function(err, result) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.equal(Math.round(result.distances[0][1] * 10), 1315); // Round it to nearest 0.1m to eliminate floating point comparison error
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
test('table: returns buffer', function(assert) {
|
test('table: returns buffer', function(assert) {
|
||||||
assert.plan(3);
|
assert.plan(3);
|
||||||
var osrm = new OSRM(data_path);
|
var osrm = new OSRM(data_path);
|
||||||
|
Loading…
Reference in New Issue
Block a user