using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
namespace ModelData.BusinessModel.Tools
{
/// \addtogroup Entities
/// @{
/// \class Coordinate
///
/// \brief Сущность географических координат
///
/// \author Denis
/// \date 31.03.2019
public class Coordinate
{
/// \property public double Lat
///
/// \brief Географическая широта
///
/// \returns The lat.
[DisplayName("Широта")] public double Lat { set; get; }
/// \property public double Long
///
/// \brief Географическая долгота
///
/// \returns The long.
[DisplayName("Долгота")] public double Long { set; get; }
/// \fn public Coordinate()
///
/// \brief Стандартный конструктор
/// Значения заполняются 0.
/// \author Denis
/// \date 31.03.2019
public Coordinate()
{
Lat = 0;
Long = 0;
}
/// \fn public Coordinate(VDS.RDF.INode long_, VDS.RDF.INode lat_)
///
/// \brief Конструктор на основе полученного из онтологии значения
/// В качестве параметров передаются два "узла", которые являются результатом запроса из онтологии
/// \warning Мои запросы ! требуют наличия координат, поэтому передаваемые значения никогда не будут null. Поэтому данная проверка не используется.
/// \warning Нет проверки на правильность полученного значения, т.к. на данный момент онтология заполнялась вручную и все данные были верные.
/// \author Denis
/// \date 31.03.2019
///
/// \param long_ Результат запроса из онтологии "долгота".
/// \param lat_ Результат запроса из онтологии "широта".
public Coordinate(VDS.RDF.INode long_, VDS.RDF.INode lat_)
{
this.Lat = double.Parse(long_.ToString().Split('^')[0].Replace('.', ','));
this.Long = double.Parse(lat_.ToString().Split('^')[0].Replace('.', ','));
}
/// \fn public Coordinate(double x, double y)
///
/// \brief Конструктор на основе double значения
///
/// \author Denis
/// \date 31.03.2019
///
/// \param x Координата широты.
/// \param y Координата долготы.
public Coordinate(double x, double y)
{
this.Lat = x;
this.Long = y;
}
/// \fn public Coordinate(Coordinate origin)
///
/// \brief Конструктор копирования
///
/// \author Denis
/// \date 31.03.2019
///
/// \param origin The origin.
public Coordinate(Coordinate origin)
{
Lat = origin.Lat;
Long = origin.Long;
}
/// \fn public override string ToString()
///
/// \brief Возвращает строку, представляющую текущий объект.
/// Будучи базовой сущностью (не унаследованной от BaseOntologyEntity) требует преобразования в строку.
/// \author Denis
/// \date 31.03.2019
///
/// \returns Строка, представляющая текущий объект.
public override string ToString()
{
return Lat + " " + Long;
}
}
/// @}
}