在这里,卡车导航中的 iOS 车辆尺寸由 NMACoreRouter 更改漏洞?

问题描述

我正在使用 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)
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)