我正在使用 HERE iOS SDK Premium (v3.18.2.92) 开发 iOS 应用程序。我想使用卡车导航并开始在 NMARoutingMode 类中设置车辆尺寸。
喜欢:
routingMode.vehicleLength = 25.25;
routingMode.vehicleWidth = 2.2;
routingMode.vehicleHeight = 2.6;
routingMode.limitedVehicleWeight = 1.2
在为我的应用程序添加一些测试用例时,我发现我传入的车辆尺寸已被 NMACoreRouter 实例更改。似乎只接受整米作为 3.0m 而不是 3.5m 的尺寸。
so 25.25 is changed to 25.0
so 2.2 is changed to 2.0
so 2.6 is changed to 2.0
so 1.2 is changed to 1.0
对我来说,这看起来像一个错误。
这就是我所做的:
class NMARouterTest: XCTestCase {
func testTruckRouting() throws {
let didCalculationEnd = expectation(description: #function)
let start: NMAGeoCoordinates =
NMAGeoCoordinates(latitude:48.7450811, longitude:9.2135278)
let end: NMAGeoCoordinates =
NMAGeoCoordinates(latitude:48.7395846, longitude:9.3045532)
let router = NMACoreRouter()
var stops = [Any]()
stops.append(start)
stops.append(end)
let routingOption = NMARoutingOption.init(rawValue: 0)
let routingMode = NMARoutingMode(routingType: .fastest,
transportMode: .truck,
routingOptions: routingOption)
routingMode.vehicleLength = 25.25;
routingMode.vehicleWidth = 2.2;
routingMode.vehicleHeight = 2.6;
routingMode.limitedVehicleWeight = 1.2
routingMode.resultLimit = 3
routingMode.trailersCount = 0
router.calculateRoute(withStops: stops, routingMode: routingMode) { (routeResult: NMARouteResult?, nmaError: NMARoutingError) in
XCTAssertEqual(nmaError, .none)
XCTAssertNotNil(routeResult)
XCTAssertNotNil(routeResult?.routes)
guard let routes = routeResult?.routes else {
didCalculationEnd.fulfill()
return
}
for route in routes {
XCTAssertEqual(route.routingMode.vehicleLength, 25.25)
XCTAssertEqual(route.routingMode.vehicleWidth, 2.2)
XCTAssertEqual(route.routingMode.vehicleHeight, 2.6)
XCTAssertEqual(route.routingMode.limitedVehicleWeight, 1.2)
}
didCalculationEnd.fulfill()
}
wait(for: [didCalculationEnd], timeout: 5)
}
}