HEREMaps error 5 when calculating long routes on iOS - here-api

UPDATE: This occurs only when using the simulator in Xcode. For this reason this question can be considered resolved. I'm not going to delete it though in case someone else experiences the same issue.
When I try to calculate routes for long distances (for example from Vancouver BC to New York NY I get an error back, error 5.
Error 5 is defined in the API as:
NMARoutingErrorInvalidOperation
There was an error due to another request already being processed.
This is however the same call that is made for other calculations without issue, this only happens for long distances.
Do you have any insight into what could be causing this? I have tried using both fastest and balanced for the routing type. I am using
router.calculateRoute(withStops: [startWaypoint, destinationWaypoint], routingMode: routingMode)
Going South I can calculate a route from Vancouver to Seattle (195Km) but not Aberdeen (250Km). Going East I can calculate to Skagit Provincial Park (150Km) but not to Manning Park (190 Km)
(iOS Premium License)

This occurs only when using the simulator in Xcode. For this reason this question can be considered resolved. I'm not going to delete it though in case someone else experiences the same issue.

Related

Entering one address but get two locations with uneque locationId

Noticed a problem with geocoder api.
https://autocomplete.geocoder.ls.hereapi.com/6.2/suggest.json?apiKey={apiKey}&in=countryCode%3ALTU&query=kreves%20pr.%2067
top 2 results seem good but why 2 of them?
Addresson both of them seem identical but postalCodes are difirent and the one with 50355 doesn't even exists when I check in other places.
Maybe I need to do some filtering?
results:
Couldn't figure out why autocomplete api gave such results (same problem form most addresses) started using their lookup api instead (https://developer.here.com/documentation/geocoding-search-api/dev_guide/topics/endpoint-lookup-brief.html) seems to be working corectly.
In Lithuania country many postal codes have very small areas therefore between those areas exist many borders as well. This address kreves pr. 67 LTU is on such border between pc 50355 and pc 50357. Of course perhaps pc 50355 doesn't exist in reality as well.
This is not Geocoder API issue but map core data issue.
For such issues please report on https://mapcreator.here.com/ . There you can edit map data as well.

HERE Fleet Telematics API unsolved problems [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
The community reviewed whether to reopen this question 11 months ago and left it closed:
Original close reason(s) were not resolved
Improve this question
For reference, some related (not duplicate !) questions:
Fleet Telematics API fails to find route
Increasing search radius for way points in Here Maps Fleet Telematics API
How to increase search radius for a road link for a waypoint (Fleet Telematics API)
HERE Fleet Telematics API doesn't really optimize cost
First, some context. We're providing services for customers operating in Europe / North Africa.
The use case discussed here is to calculate truck routes with different possible goals, sometimes it's getting a cost-optimized route (including tolls or not), sometimes to get the fastest or (near) shortest, or a mix
Usually, we work with postcode/city locations, not full addresses
Initially, you had to use several different APIs to do that, now it's more or less fused into the Fleet Telematics API.
So, let's dive into the documentation: https://developer.here.com/documentation/fleet-telematics/api-reference.html
We're greeted with this introduction:
The HERE Fleet Telematics API is a set of REST resources for advanced
fleet telematics on top of the HERE Location Services. It supersedes
the services CLE, CRE, GFE, GFE-onMaps, PDE, RME, TCE, and WSE.
OK, the FT-API indeed rules them all. We're in the right place.
There are lots (LOTS) of different parameters you can play with, and it's working quite well, except that if you compare the routes to those of the competing services for truck routing, the optimization is often not very good, bordering on bad.
Then, at some point, you come across this strange couple of paragraphs at the end of the "Toll Cost & Cost Optimize" chapter in the Developer Guide:
https://developer.here.com/documentation/fleet-telematics/dev_guide/topics/calculation-considerations.html
Choosing a Toll Cost Routing Engine
Specify the parameter &rollup and/or &cost_optimize to get the route calculated by Routing API. Routing API itself doesn't cost/toll optimize, but provides the fastest and the shortest route and some more routes with different options. Fleet Telematics API then chooses the route which has the minimum sum of driver_cost, vehicle_cost, and toll cost. Hence, a (toll)cost-optimized route is usually found, but it is not always guaranteed.
Specify the parameter &rollups instead of &rollup, and don't specify &cost_optimize, to get the route computed within Fleet Telematics API. Fleet Telematics API ignores the shortest/fastest in the mode parameter. Instead, it minimizes the sum of driver_cost, vehicle_cost, and toll cost. This yields fully cost-optimized routes (within the limitation that routing doesn't consider the smallest roads when very far away from waypoints). But doesn't support all Routing API parameters and can show higher response times.
Ignoring the hackish way of unlocking the full-fat optimizing engine (why not a real parameter ?), the end phrase is quite ominous. Still, it's tempting to try to improve results after exhausting all the options of the Routing API.
Turns out the results are worth it, but with lots of caveats...
The first sign that we are entering uncharted territory is that we're told that it "doesn't support all Routing API" but we're left to discover which ones (trial & error ?).
What's trickier is that some parameter values can cause problems:
Let's go from HARELBEKE (Belgium) to LA MEZIERE (France)
https://fleet.ls.hereapi.com/2/calculateroute.json?apiKey=...&driver_cost=0&vehicle_cost=2&ignoreWaypointVehicleRestriction=20000;1;all;0&waypoint0=geo!50.85677,3.31078;2000&waypoint1=geo!48.21925,-1.7546;2000&mode=fastest;truck;traffic:disabled;motorway:0&legAttributes=shape,-links,-maneuvers&limitedWeight=44&trailersCount=1&excludecountries=CHE,AND&tollVehicleType=3&detail=1&mapMatchTolerance=2000&routelegattributes=li&routeattributes=gr&linkattributes=none,rt,fl&rollups=none,total,country
=> "Couldn't reach waypoint 1"
Turns out that changing only the parameter "driver_cost=0" to some other value is enough to make it work. And yes, "driver_cost=0" works with thousands of other routes, but not this one. Why?
Another set of weird cases is that some routes choices are hard to explain
Let's go from BORDEAUX (France) to PARIS (France)
Nailed it! The best route, 10/10
Then back to BORDEAUX from PARIS (same parameters of course)
https://fleet.ls.hereapi.com/2/calculateroute.json?apiKey=...&driver_cost=20&vehicle_cost=2&ignoreWaypointVehicleRestriction=20000;1;all;0&waypoint0=geo!48.85717,2.3414;2000&waypoint1=geo!44.8367,-0.58107;2000&mode=fastest;truck;traffic:disabled;boatFerry:-2;railFerry:-2;motorway:0&legAttributes=shape,-links,-maneuvers&limitedWeight=44&trailersCount=1&excludecountries=CHE,AND&tollVehicleType=3&detail=1&mapMatchTolerance=2000&routelegattributes=li&routeattributes=gr&linkattributes=none,rt,fl&rollups=none,total,country
Disappointing result considering that you just have to take the same route back, 4/10
Moving on to the first big unsolved problem for us: boats
The documentation states that, for trucks, you can only cost-optimize. To go for shorter or faster routes, you have to tweak the values of vehicle_cost or driver_cost.
A minor issue is that you lose the "real" costs calculation but it's easy to calculate yourself, so no big deal. The major problem is that if you push the vehicle cost above a certain threshold, around 4€/km, and you're near a coast, the engine wants to take a ferry.
For instance: ERMELO, 3851, NLD => CHATRES, 77610, FRA
Live request here
Sure, going to London, great idea. 2/10 including 1 bonus point for creativity
The solution for this route is to to add the &tollPass=transponder parameter to be able to use highways w/tolls in Belgium for trucks (anything above 3.5t). That's only for FT-API, the Route-API doesn't need it (go figure). So if you do truck routing in Europe, that parameter is de facto mandatory. But for the next route, there's no known (to me) solution, you can't avoid the boat trips.
CESTAS, 33610, FRA => GIUSSANO, 20833, ITA
Live request here
FIVE sea trips! It's not a truck route, it's a touristic cruise! 3/10
Unfortunately, the parameter vehicleCostOnFerry= doesn't change the route - it computes the additional cost but still goes for the boat(s)
Last shot in the mode parameter: boatFerry:-2;railFerry:-2, but nope - still prefers the boat
Only option boatFerry:-3;railFerry:-3 but then you can't cross the sea when you have to
Second big unsolved problem: waypoint radius
The premise is that the exact waypoint is not always reachable with a truck, mainly because you don't always have the real address but a default position in a city or postcode.
To work around that in the Route API, you define a radius around the waypoint to make it fuzzier. That parameter is ignored by the FT-API.
See that question for an example: Increasing search radius for way points in Here Maps Fleet Telematics API
The suggested workaround is to set the routeMatch=1 parameter. At first, it seems to work, but that option hides some nasty surprises.
First surprise: no error but the engine drops one or more points with the warning "Ignoring Trace Point X/Y because it is far away from the neighbors"
Luckily, there's a solution: ignoreWaypointsFarFromNeighbors=false
Second surprise: no error but you're teleported from one location to another
BIGANOS, FRA => KOLDING, DNK
Live request here
There the warnings are:
"code": 1021, "message": "Ignoring tracepoints with too big distance to the main route"
"code": 1005, "message": "Tracepoint #1 (55.48637 / 9.47336) moved by 1676199 meter onto the route"
At that point, I just gave up on routeMatch=1 because I found no parameter to avoid that and no workaround.
To summarize, at the moment we use the FT-API by default (because it finds better routes), but with two limitations:
it's impossible to fully optimize for distance because there's a practical limit to the vehicle_cost parameter
we have to fall back to the Route-API engine when the FT-API fails because of unreachable waypoints
Does anybody have a solution or workaround for those remaining problems ?

Unreachable Cities According to the Isoline API

I'm currently using the isoline api to create a coverage area around Seattle,WA based on time traveled.
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json?app_id=<APP_ID>&app_code=<APP_CODE>&mode=fastest;car;traffic:disabled&rangetype=time&start=geo!47.6062,-122.3221&range=32400
However, I've noticed a few sections of map in Washington state that are never covered, even when the time distance is set to the max of 9 hours.
All of these places are reachable by car/bike/walking and Ocean Shores takes me less than 3 hours to drive to - and with 9 hours of driving I could easily make it into California or Montana.
So is this a Here-API bug/limitation or is there something wrong with the way that I am making the call?
Thank you and any help and all help is always appreciated

Sabre developer api - how limited is the data in development? Am I using it wrong or is data THAT limited?

Im trying our different flight api's from sabre, I understand from reading the data Im getting back is limited in development but Im not sure if it really can be THAT limited or its me doing something wrong.
1: InstaFlights Search
First I use the citypairs lookup to show city pairs, then use them for the instasearch,
The problem is unlike I use NY or London (there were 2 other cities working fine), for almost ALL other cities, Im getting no response.
I know data is limited but since the citypairs api already returns VERY limited data, but is it really THAT limited? Feeling like I must be doing something wrong because I cannot image, that api to work (in dev) only for 3 cities on 3 different dates :-/
destination api
here I use first the supported cities api, then use results to use the multi airports api, then use that for destination api.
Again, same here, only 2/3 cities actually work. Since in the destination api, UNLIKE the instaflights api, the changes of 'matches' are higher as any destination could be shown for the picked origin. HERE AGAIN almost no results, BUT for about 3 cities.
If anyone who has some experience with sabre, could help out it would be great- just trying to figure out if its me whos using it wrong or no. Thanks!
Can you please provide the city pairs that seem to be failing for you? I just did a test of both APIs (InstaFlights and DestinationFinder) and was able to obtain results with the city pairs provided there. I changed the point of sale to FR and obtained PAR-ATH, and that worked. Also worked with ABE-MCO which is the first city pair I obtain when using POS US.
The testing environment for this API but you should be not limited to just three cities.

Getting Total Miles In Each State Passed

I would like to know if it is possible to get the total miles traveled (via road/interstate) in each state instead of the total miles only.
For example: From Chicago, IL to Atlanta, GA the total miles traveled in each state would be:
IL=16 miles
IN=284 miles
KY=137 miles
TN=152 miles
GA=128 miles
From what I understand this is not possible in google maps api but I wanted to see if it is possible using anything else, Bing, YAhoo, Mapquest ???
Thanks for any help...
You might be able to use the MapQuest Directions Service to come up with very basic/general distances for each state, but I'm not sure if the distances will be exact enough to fit your needs. Basically, the directions service returns driving directions in terms of "maneuvers" and you can make a request to the directions service that tells it to include crossing state boundaries in the maneuvers it returns. You may be able to parse the data that is returned to calculate the route distances between the "crossing into (state name)" maneuvers, but again, it might not be exact enough.
It might be worth a look. I've never done this before, but it's my first thought. The MapQuest Developer Network has forums, so it might be worth it to post the question there, too.
You can keep track of miles driven in each state (Example: Travel from home in New Mexico to (any city)Texas. These programs will do this for you, Trulos.com, IFTA Plus, truckingoffice.com, ifta-calculator.com Some are free others usually give a 30 day free trial. I use programs like this when I'm filing mileage/fuel reports for commercial drivers. These drivers always have to report how many miles they travel in "each" state. All you have to enter is the location of your starting point and your final destination. The program will then calculate your miles traveled for each state and also will give you the "total" miles traveled.

Resources