Class LngLatDistance

  • All Implemented Interfaces:
    elki.distance.Distance<elki.data.NumberVector>, elki.distance.NumberVectorDistance<elki.data.NumberVector>, elki.distance.PrimitiveDistance<elki.data.NumberVector>, elki.distance.SpatialPrimitiveDistance<elki.data.NumberVector>

    @Reference(authors="Erich Schubert, Arthur Zimek, Hans-Peter Kriegel",
               title="Geodetic Distance Queries on R-Trees for Indexing Geographic Data",
               booktitle="Int. Symp. Advances in Spatial and Temporal Databases (SSTD\'2013)",
               url="https://doi.org/10.1007/978-3-642-40235-7_9",
               bibkey="DBLP:conf/ssd/SchubertZK13")
    public class LngLatDistance
    extends java.lang.Object
    implements elki.distance.SpatialPrimitiveDistance<elki.data.NumberVector>, elki.distance.NumberVectorDistance<elki.data.NumberVector>
    Distance function for 2D vectors in Longitude, Latitude form.

    The input data must be in degrees (not radians), and the output distance will be in meters (see EarthModel.distanceDeg(double, double, double, double)).

    This implementation allows index accelerated queries using R*-trees (by providing a point-to-rectangle minimum distance).

    Reference:

    Erich Schubert, Arthur Zimek, Hans-Peter Kriegel
    Geodetic Distance Queries on R-Trees for Indexing Geographic Data
    Int. Symp. Advances in Spatial and Temporal Databases (SSTD'2013)

    Since:
    0.4.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  LngLatDistance.Par
      Parameterization class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private EarthModel model
      Earth model to use.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double distance​(elki.data.NumberVector o1, elki.data.NumberVector o2)  
      boolean equals​(java.lang.Object obj)  
      elki.data.type.SimpleTypeInformation<? super elki.data.NumberVector> getInputTypeRestriction()  
      int hashCode()  
      boolean isMetric()  
      double minDist​(elki.data.spatial.SpatialComparable mbr1, elki.data.spatial.SpatialComparable mbr2)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface elki.distance.Distance

        isSquared, isSymmetric
      • Methods inherited from interface elki.distance.SpatialPrimitiveDistance

        instantiate
    • Field Detail

      • model

        private EarthModel model
        Earth model to use.
    • Constructor Detail

      • LngLatDistance

        public LngLatDistance​(EarthModel model)
        Constructor.
    • Method Detail

      • distance

        public double distance​(elki.data.NumberVector o1,
                               elki.data.NumberVector o2)
        Specified by:
        distance in interface elki.distance.NumberVectorDistance<elki.data.NumberVector>
        Specified by:
        distance in interface elki.distance.PrimitiveDistance<elki.data.NumberVector>
      • minDist

        public double minDist​(elki.data.spatial.SpatialComparable mbr1,
                              elki.data.spatial.SpatialComparable mbr2)
        Specified by:
        minDist in interface elki.distance.SpatialPrimitiveDistance<elki.data.NumberVector>
      • getInputTypeRestriction

        public elki.data.type.SimpleTypeInformation<? super elki.data.NumberVector> getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.distance.Distance<elki.data.NumberVector>
        Specified by:
        getInputTypeRestriction in interface elki.distance.PrimitiveDistance<elki.data.NumberVector>
      • isMetric

        public boolean isMetric()
        Specified by:
        isMetric in interface elki.distance.Distance<elki.data.NumberVector>
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object