// XAML Map Control - http://xamlmapcontrol.codeplex.com/
// Copyright © 2013 Clemens Fischer
// Licensed under the Microsoft Public License (Ms-PL)
#if NETFX_CORE
using Windows.Foundation;
#else
using System.Windows;
#endif
namespace MapControl
{
///
/// Defines a normal cylindrical projection. Latitude and longitude values in degrees are
/// transformed to cartesian coordinates with origin at latitude = 0 and longitude = 0.
/// Longitude values are transformed identically to x values in the interval [-180 .. 180].
/// Latitude values in the interval [-MaxLatitude .. MaxLatitude] are transformed to y values in
/// the interval [-180 .. 180] according to the actual projection, e.g. the Mercator projection.
///
public abstract class MapTransform
{
///
/// Gets the absolute value of the minimum and maximum latitude that can be transformed.
///
public abstract double MaxLatitude { get; }
///
/// Gets the scale factor of the map projection at the specified geographic location
/// relative to the scale at latitude zero.
///
public abstract double RelativeScale(Location location);
///
/// Transforms a geographic location to a cartesian coordinate point.
///
public abstract Point Transform(Location location);
///
/// Transforms a cartesian coordinate point to a geographic location.
///
public abstract Location Transform(Point point);
}
}