Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
DistanceFunction.hpp
Go to the documentation of this file.
1#pragma once
4
6 static auto operator()(const fishnet::geometry::Vec2DReal & lhs, const fishnet::geometry::Vec2DReal & rhs) noexcept {
8 }
9};
10
12 static auto operator()(const fishnet::geometry::Vec2DReal & lhs, const fishnet::geometry::Vec2DReal & rhs) noexcept {
13 return lhs.distance(rhs);
14 }
15};
16
18
19static DistanceFunction distanceFunctionForSpatialReference(const OGRSpatialReference & spatialRef) {
20 if(spatialRef.IsEmpty())
21 throw std::runtime_error("No distance function available for empty coordinate system");
22 if(spatialRef.IsLocal() || spatialRef.IsProjected())
23 return MetricDistance();
24 if(spatialRef.IsGeographic())
25 return WGS84Distance();
26 throw std::runtime_error("No distance function found for coordinate system: \""+std::string(spatialRef.GetName())+"\"");
27}
std::function< fishnet::math::DEFAULT_FLOATING_POINT(const fishnet::geometry::Vec2DReal &, const fishnet::geometry::Vec2DReal &)> DistanceFunction
Definition DistanceFunction.hpp:17
static DistanceFunction distanceFunctionForSpatialReference(const OGRSpatialReference &spatialRef)
Definition DistanceFunction.hpp:19
static double distance(double lambdaA, double phiA, double lambdaB, double phiB, bool exact=true)
Definition WGS84Ellipsoid.hpp:71
Implementation of a two-dimensional vector.
Definition Vec2D.hpp:16
double DEFAULT_FLOATING_POINT
Definition NumericConcepts.hpp:12
Definition DistanceFunction.hpp:11
static auto operator()(const fishnet::geometry::Vec2DReal &lhs, const fishnet::geometry::Vec2DReal &rhs) noexcept
Definition DistanceFunction.hpp:12
Definition DistanceFunction.hpp:5
static auto operator()(const fishnet::geometry::Vec2DReal &lhs, const fishnet::geometry::Vec2DReal &rhs) noexcept
Definition DistanceFunction.hpp:6