类 CRSDistance

嵌套关系

嵌套类型

继承关系

基类

派生类

类文档

class CRSDistance : public gwm::Distance

Subclassed by gwm::MinkwoskiDistance

公有类型

inline CRSDistance()

构造一个新的 CRSDistance 对象。

inline explicit CRSDistance(bool isGeographic)

构造一个新的 CRSDistance 对象。

参数:

isGeographic -- 坐标参考是是否是地理坐标系

CRSDistance(const CRSDistance &distance)

拷贝构造一个新的 CRSDistance 对象。

参数:

distance -- 要拷贝的对象的引用

inline virtual ~CRSDistance()
inline virtual std::unique_ptr<Distance> clone() const override

克隆这个 Distance 对象。

返回:

Distance* 重新创建的对象指针

inline virtual DistanceType type() override

返回该对象的类型。

返回:

DistanceType 距离陆良类型

inline bool geographic() const

获取参考系是否是地理坐标系。

返回:

true 如果坐标系是地理的

返回:

false 如果坐标系不是地理的

inline void setGeographic(bool geographic)

设置参考系是否是地理坐标系。

参数:

geographic -- 参考系是否是地理坐标系

virtual void makeParameter(std::initializer_list<DistParamVariant> plist) override

创建计算坐标系距离的参数。

参数:

plist -- 包含如下2项的参数列表:

  • arma::mat 目标点

  • arma::mat 数据点

virtual arma::vec distance(arma::uword focus) override

为一个目标点计算距离向量。

参数:

focus -- 目标点索引,要求 focus 小于参数中的 total

返回:

arma::vec 目标点到所有数据点的距离向量

virtual double maxDistance() override

获取最大距离。

返回:

double 最大距离

virtual double minDistance() override

获取最小距离。

返回:

double 最小距离

公有静态方法

static arma::vec SpatialDistance(const arma::rowvec &out_loc, const arma::mat &in_locs)

计算地理坐标系下的空间距离。

参数:
  • out_loc -- 目标点坐标行向量。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。

  • in_locs -- 数据点坐标矩阵。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。

返回:

arma::vec 为 out_loc 计算得到的距离向量

static inline arma::vec EuclideanDistance(const arma::rowvec &out_loc, const arma::mat &in_locs)

计算投影坐标系下的空间距离。

参数:
  • out_loc -- 目标点坐标行向量。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。

  • in_locs -- 数据点坐标矩阵。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。

返回:

arma::vec 为 out_loc 计算得到的距离向量

static double SpGcdist(double lon1, double lon2, double lat1, double lat2)

计算两个点之间的地理参考系距离。

参数:
  • lon1 -- 第一个点的经度

  • lon2 -- 第二个点的经度

  • lat1 -- 第一个点的纬度

  • lat2 -- 第二个点的纬度

返回:

double 两个点之间的空间距离

保护属性

bool mGeographic

坐标系是否是地理坐标系

std::unique_ptr<Parameter> mParameter

计算参数

struct Parameter : public gwm::Distance::Parameter

距离计算用的参数。

公有类型

inline Parameter(const arma::mat &fp, const arma::mat &dp)

构造一个新的 CRSDistanceParameter 对象。

参数:
  • fp -- 目标点坐标引用

  • dp -- 数据点坐标引用

公有成员

arma::mat focusPoints

目标点坐标矩阵。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。

arma::mat dataPoints

数据点坐标矩阵。 其形状必须是 \(n \times 2\) 且其第一列是经度或 \(x\) 坐标, 第二列是纬度或 \(y\) 坐标。