How to use implicits (Scala only)
How to use implicits (Scala only)
The Location Library offers Implicits objects that simplify the use of the
Location Library type classes. For example, by exposing type class operations as
extension methods.
The simplest way to achieve this is to add this line at the top of your source file:
import com.here.platform.location.core.geospatial.Implicits._You can see the resulting simplification in the following example:
def processLineString[LS: LineStringOperations](lineString: LS) = {
// Using the type class without the `Implicits` object
val points = implicitly[LineStringOperations[LS]].points(lineString)
import com.here.platform.location.core.geospatial.Implicits._
// Using the type class with the `Implicits` object
val points2 = lineString.points
assert(points == points2)
}The Location Library also supports using HERE Map Content types with Location
Library type classes by importing the contents of the corresponding Implicits
object.
val point0 = com.here.schema.geometry.v2.geometry.Point(0, 0)
val point1 = com.here.schema.geometry.v2.geometry.Point(1, 1)
import com.here.platform.location.integration.heremapcontent.geospatial.Implicits._
val distance = GeoCoordinates.greatCircleDistanceMeters(point0, point1)Updated 21 days ago