GuidesAPI Reference
Guides

How to optimize isolines

There are two ways you can optimize isoline routing:

  • Server-centric, using the optimizeFor parameter which defines the granularity with which the requested isoline is calculated. You can choose between perfomance, quality, or balanced (default). This can increase the speed of calculation turnover sacrificing accuracy.
  • Client-centric, using the shape[maxPoints] parameter, which defines the number of points provided to draw the requested isoline on the map. This can reduce the load put on the client app that interprets the API response sacrificing accuracy.

Server-centric optimization

To control the speed of isoline calculation and balance it with isoline accuracy, use the optimizeFor parameter in your request.

The parameter takes one of the three values:

  • balanced - The default value, used when the optimizeFor parameter is not added to a request. Offers a good compromise between calculation speed and accuracy, suitable for most use cases.
  • performance - Decreases the calculation accuracy by ignoring less important roads to improve performance.
  • quality - Prioritizes calculation accuracy by taking the most roads into consideration.

The following images present the result of one isoline calculation.

The only thing that changes is the value of the optimizeFor parameter.

The roads highlighted in red are used for the calculation.

Note how the number of highlighted roads increases between images as they showcase calculations using the performance, balanced, and quality modes.

📘

Note

The difference in accuracy between the quality and performance modes becomes less significant the larger the area of the isoline calculation. The performance mode limits the number of lower Functional Class roads used in calculations to improve performance. In case of larger areas, roads of lower Functional Class are excluded from calculations in all optimizeFor modes.

optimizeFor=performance optimizeFor=balanced optimizeFor=quality

Client-centric optimization

Using the shape[maxPoints] parameter, you can control the number of geometry points of the calculated isoline.

The lower the number of geometry points, the easier it becomes for the client app to render the shape of the calculated isoline.

Using this parameter doesn't influence the server-side performance.

Reducing the number of geometry points results in the isoline shape being less detailed and accurate to the calculation.

The lowest possible value of the shape[maxPoints] parameter is 30. For optimal results, it's recommended to use values of over 100.

The following example illustrates how the shape of the isoline changes when the shape[maxPoints]=50 parameter is added to the request.

Note how the borders of the shape become rounded when shape[maxPoints]=50 is used and how the reach of the isoline into the airport area in the north-east changes.

curl -gX GET 'https://isoline.router.hereapi.com/v8/isolines?'\
'transportMode=car&'\
'origin=52.51578,13.37749&'\
'range[type]=distance&'\
'range[values]=10000&'\
'shape[maxPoints]=50&'\
'routingMode=short&'\
'apiKey=YOUR_API_KEY'

Standard isoline shape Shape of isoline with geometry points limited to 50