Can't calculate isoline for bicycle transport mode - here-api

I am currently evaluating HERE and trying to calculate an isoline for a bicycle, but keep receiving an error response, as follows:
{
"_type": "ns2:RoutingServiceErrorType",
"type": "ApplicationError",
"subtype": "InvalidInputData",
"details": "Isoline for 'bicycle' Transport Mode is not supported",
"additionalData": [
{
"key": "mode",
"value": "fastest;bicycle;traffic:disabled"
}
],
"metaInfo": {
"timestamp": "2016-07-25T13:58:35Z",
"mapVersion": "8.30.62.159",
"moduleVersion": "7.2.71.0-39010",
"interfaceVersion": "2.6.25"
}
}
Request details:
https://isoline.route.cit.api.here.com/routing/7.2/calculateisoline.json?app_id=<my_app_id>&app_code=<my_app_code>&mode=fastest;bicycle;traffic:disabled&rangetype=time&start=geo!51.509373,-0.122572&range=5503
If I change the transport mode from bicycle to pedestrian, I get a successful response, so assume the request is OK apart from that bit. Maybe the Evaluation plan has a limitation on isolines for bicycles? Any help much appreciated. Thanks.

In documentation, https://developer.here.com/rest-apis/documentation/routing/topics/resource-calculate-isoline.html mentioned that for isoline routing only car, truck and pedestrian modes are supported at the moment.

Related

MassTransit. Edit MessageType property for remove unnecessary items

First of all, excuse my English, it's very bad. I am using MassTransit with Azure Service Bus for asynchronous communication between microservices.
Due to project design requirements, the objects sent and / or published in masstransit are objects (class instances) that implement interfaces and have inheritance, which implies that the "MessageType" property is an array of multiple values, which results in a sending/publication of "a copy" of the object for each of the base classes and interfaces of the object.
Since the application really only needs to process the final class, the result of this behavior is that queues and topics of message types are created that are never processed.
Is there a way to modify the MessageType array to remove all unnecessary items?
Example:
This is a current message:
{
"messageId": "c93e0000-eab0-3663-c954-08d89e1f87cb",
"correlationId": "42fc2237-77b1-4994-821d-87790b6caf06",
"conversationId": "c93e0000-eab0-3663-f342-08d89e1f87cd",
"sourceAddress": "sb://bus.servicebus.windows.net/tmspayments7dc9d65778jfh75_dotnet_bus_3r9yyy8ksy5g84tdbdcjasmhg9",
"destinationAddress": "sb://bus.servicebus.windows.net/queue",
"messageType": [
"urn:message:Payments.Application.Integration.Outcoming.Commands.Sales:NotifySalePaymentHasCanceledCommand",
"urn:message:Payments.Application.Integration.Outcoming.Commands:BaseIntegrationOutcomingCommand",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Commands:IdentifiedCommandBase",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Messages:MessageBase",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Messages:IIdentifiedMessage",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Messages:IMessage",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Commands:IIdentifiedCommand",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Messages:ICommand",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Commands.Outcoming:IOutcomingCommand",
"urn:message:Tms.Frameworks.CqrsEs.Cqrs.Messages:IOutcomingMessage"
],
"message": {
"commandId": "42fc2237-77b1-4994-821d-87790b6caf06",
"terminalId": 71,
"paymentId": "a28a23e9-3ba5-464f-9a20-d25d1991ab46"
},
"sentTime": "2020-12-11T21:55:53.252599Z",
"headers": {},
"host": {
"machineName": "tms-payments-7dc9d65778-jfh75",
"processName": "dotnet",
"processId": 1,
"assembly": "Payments.Api",
"assemblyVersion": "1.0.0.0",
"frameworkVersion": "3.1.8",
"massTransitVersion": "5.5.2.0",
"operatingSystemVersion": "Unix 4.15.0.1098"
}
}
And this is my goal message (with only one item in messageType property):
{
"messageId": "c93e0000-eab0-3663-c954-08d89e1f87cb",
"correlationId": "42fc2237-77b1-4994-821d-87790b6caf06",
"conversationId": "c93e0000-eab0-3663-f342-08d89e1f87cd",
"sourceAddress": "sb://bus.servicebus.windows.net/tmspayments7dc9d65778jfh75_dotnet_bus_3r9yyy8ksy5g84tdbdcjasmhg9",
"destinationAddress": "sb://bus.servicebus.windows.net/queue",
"messageType": [
"urn:message:Payments.Application.Integration.Outcoming.Commands.Sales:NotifySalePaymentHasCanceledCommand"
],
"message": {
"commandId": "42fc2237-77b1-4994-821d-87790b6caf06",
"terminalId": 71,
"paymentId": "a28a23e9-3ba5-464f-9a20-d25d1991ab46"
},
"sentTime": "2020-12-11T21:55:53.252599Z",
"headers": {},
"host": {
"machineName": "tms-payments-7dc9d65778-jfh75",
"processName": "dotnet",
"processId": 1,
"assembly": "Payments.Api",
"assemblyVersion": "1.0.0.0",
"frameworkVersion": "3.1.8",
"massTransitVersion": "5.5.2.0",
"operatingSystemVersion": "Unix 4.15.0.1098"
}
}
Thank you very much.
Regards
Borja
Short Answer: No
MassTransit will reflect all supported types and include them in the message envelope to support polymorphic message delivery and deserialization.
You can exclude message types from being created as exchanges/topics on the message broker, but that does not exclude them from the message type array during serialization.

calculateroute.json giving NGEO_ERROR_GRAPH_DISCONNECTED error

So when I try to call calculateroute.json, I'm getting a NGEO_ERROR_GRAPH_DISCONNECTED error with no further information.
Here's my example call: https://route.api.here.com/routing/7.2/calculateroute.json?app_id=<APP_ID>&app_code=<APP_CODE>&waypoint0=geo!-34.0144128,151.1121957&waypoint1=geo!-33.875455,151.207583&mode=fastest;car;traffic:enabled&departure=2019-11-11T22:27:30
Obviously I've removed our App ID and App Code from that call :).
{
"_type": "ns2:RoutingServiceErrorType",
"type": "ApplicationError",
"subtype": "NoRouteFound",
"details": "Error is NGEO_ERROR_GRAPH_DISCONNECTED",
"additionalData": [
{
"key": "error_code",
"value": "NGEO_ERROR_GRAPH_DISCONNECTED"
}
],
"metaInfo": {
"timestamp": "2019-11-08T00:43:18Z",
"mapVersion": "8.30.102.150",
"moduleVersion": "7.2.201944-5674",
"interfaceVersion": "2.6.74",
"availableMapVersion": [
"8.30.102.150"
]
}
}
Any ideas?
I've tried looking through the docs but it seems I've done everything right and certainly it has worked for us hundreds/thousands of times before.
Indeed, I see the default Routing API does not find a direct route between the start and end waypoints. If you use our advanced Fleet telematics API, it does actually calculates the route.
https://fleet.api.here.com/2/calculateroute.json?app_id=<APP_ID>&app_code=<APP_CODE>&waypoint0=geo!-34.0144128,151.1121957&waypoint1=geo!-33.875455,151.207583&mode=fastest;car;traffic:enabled&departure=2019-11-11T22:27:30
Please use the advanced API if the standard API does not return results.

HERE Routing API - How to use publicTransportTimeTable mode with multiple waypoints using calculate route resource?

I'm using calculateroute resource to calculate a route between multiple waypoints.
https://route.api.here.com/routing/7.2/calculateroute.json?app_id={APP_ID}&app_code={APP_CODE}&waypoint0=-25.4327193,-49.2806026;;0&waypoint1=-25.4392733,-49.2722581;;1&waypoint2=-25.4367652,-49.2833011;;2&waypoint3=-25.4327193,-49.2806026;;3&waypoint4=-25.4327193,-49.2806026;;4&waypoint5=-25.4392733,-49.2722581;;5&departure=2019-09-09T07:10:00-03:00&mode=fastest;car;traffic:disabled;motorway:0&improveFor=distance&language=pt-br&representation=navigation&metricSystem=metric&vehicletype=diesel,5.5
I was using departure parameter to set the initial date of the route, but now, instead of departure, I need to use arrival time in some cases. I was using car mode, but as arrival parameter requires publicTransportTimeTable, I set it this way.
https://route.api.here.com/routing/7.2/calculateroute.json?...&mode=fastest;publicTransportTimeTable;motorway:0..
Then the return was this error message: "Time Table Transit Routing is only supported for two StopOver waypoints", then I set the waypoint0 and waypoint5 as stopOver and the rest as passThrough, and yet, I receive the same error.
GET REQUEST
https://route.api.here.com/routing/7.2/calculateroute.json?app_id={APP_ID}&app_code={APP_CODE}&waypoint0=stopOver!-25.4327193,-49.2806026;;0&waypoint1=passThrough!-25.4392733,-49.2722581;;1&waypoint2=passThrough!-25.4367652,-49.2833011;;2&waypoint3=passThrough!-25.4327193,-49.2806026;;3&waypoint4=passThrough!-25.4327193,-49.2806026;;4&waypoint5=stopOver!-25.4392733,-49.2722581;;5&arrival=2019-09-09T07:10:00-03:00&mode=fastest;publicTransportTimeTable;motorway:0&improveFor=distance&language=pt-br&representation=navigation&metricSystem=metric&vehicletype=diesel,5.5
RETURN
{
"_type": "ns2:RoutingServiceErrorType",
"type": "ApplicationError",
"subtype": "InvalidInputData",
"details": "Time Table Transit Routing is only supported for two StopOver waypoints",
"additionalData": [
{
"key": "waypoint",
"value": ""
}
],
"metaInfo": {
"timestamp": "2019-09-10T13:40:27Z",
"mapVersion": "8.30.99.156",
"moduleVersion": "7.2.201935-5091",
"interfaceVersion": "2.6.68",
"availableMapVersion": [
"8.30.99.156"
]
}
}
as stated in the documentation, you can only use the arrival parameter when mode is set to publicTransportTimeTable. And this type of routing currently supports only two stopover waypoints (waypoint0 and waypoint1) and no passthrough waypoints.

Does the RingCentral Call Log API Return a "Missed" Value?

In the RingCentral Online Account Portal (https://service.ringcentral.com) and endpoint apps, the call log display shows whether a call was Inbound, Outbound or Missed.
In looking at the API Reference for the Call Log API, it seems that it only sends back Inbound or Outbound for "Direction". Does the developer Call Log API return a "Missed" value? Is there another way to get this information via the Call Log API?
Ref: https://developer.ringcentral.com/api-docs/latest/index.html#!#RefCallLog.html
This question appears to be in reference to the Online Account Portal UI's "Type" column as shown in this screenshot:
The web UI's "Type" column shows Inbound, Outbound or Missed. This can be generated by using the response properties for both direction and result.
direction API response property will be Inbound or Outbound
result API response property is an enumerated value that includes Missed and other values including Voicemail which is the example screenshot. A full list is available in the link below:
Ref: https://developer.ringcentral.com/api-docs/latest/index.html#!#ResultStatusValues
Here is an example response:
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/call-log?view=Simple&showBlocked=true&withRecording=false&dateFrom=2018-08-27T06:18:00.000Z&page=1&perPage=100",
"records": [
{
"uri": "https://platform.ringcentral.com/restapi/v1.0/account/11111111/call-log/22222222?view=Simple",
"id": "22222222",
"sessionId": "33333333",
"startTime": "2018-08-27T17:38:12.634Z",
"duration": 27,
"type": "Voice",
"direction": "Inbound",
"action": "Phone Call",
"result": "Missed",
"to": {
"phoneNumber": "+16505550101"
},
"from": {
"phoneNumber": "+16505550102",
"name": "LOS ALTOS CA",
"location": "Los Altos, CA"
}
}
],
...
}
Please read this blog to find out more information you can find from the call log.

Wrong intent in Alexa Skill Request when using the simulator

I set up my intents using this intent schema:
{
"intents": [
{
"intent": "StartIntend"
},
{
"intent": "AMAZON.YesIntent"
},
{
"intent": "AMAZON.NoIntent"
}
]
}
My sample utterances look like this (it's german):
StartIntend Hallo
StartIntend Moin
StartIntend Guten Tag
Why does the Amazon Developer Console generate the following request, when I use the utterance "Yes" or "Ja"?
{
"session": {
"sessionId": "SessionId...",
"application": {
"applicationId": "amzn1.ask.skill...."
},
"attributes": {},
"user": {
"userId": "amzn1.ask.account...."
},
"new": true
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId...",
"locale": "de-DE",
"timestamp": "2017-02-17T21:07:59Z",
"intent": {
"name": "StartIntend",
"slots": {}
}
},
"version": "1.0"
}
Whatever I enter, it always is using the intend StartIntend.
Why is that? What have I forgotten / what have I done wrong?
The schema and utterance look correct.
I tried duplicating what you are seeing by performing the following steps:
Copied them as-is into a new skill on my account
Selected the North America region on the Configuration page.
Set the lambda to point to an existing lambda that I have. For testing purposes, I just need a valid ARN. I'm going to ignore the response anyways.
Then entered "Yes" into the service simulator
It indeed sent the Lambda the AMAZON.YesIntent.
So I conclude that there's nothing with the data you posted.
I tried entering Ja which resulted in the StartIntend, but I guess I would expect that since Ja is not "Yes" in North America.
Have you set the region to Europe, and entered a Lambda for the Europe region?
I talked about it with the Amazon Support. After some experiments it turned out, you have to write "ja" in lowercase. It seems to be a bug in the simulator itself.
When creating the skill in the Alexa Skills Kit, you need to choose the correct language i.e. German, see screenshot below.
Everything else seems to be correct.

Resources