mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-01-30 20:34:38 +01:00
Renamed Wgs84MetersPerDegree
This commit is contained in:
parent
535161c5a3
commit
c998f19fe5
|
|
@ -27,15 +27,15 @@ namespace MapControl
|
|||
public override Point LocationToMap(Location location)
|
||||
{
|
||||
return new Point(
|
||||
Wgs84MetersPerDegree * (location.Longitude - Center.Longitude) * Math.Cos(Center.Latitude * Math.PI / 180d),
|
||||
Wgs84MetersPerDegree * location.Latitude);
|
||||
Wgs84MeterPerDegree * (location.Longitude - Center.Longitude) * Math.Cos(Center.Latitude * Math.PI / 180d),
|
||||
Wgs84MeterPerDegree * location.Latitude);
|
||||
}
|
||||
|
||||
public override Location MapToLocation(Point point)
|
||||
{
|
||||
return new Location(
|
||||
point.Y / Wgs84MetersPerDegree,
|
||||
point.X / (Wgs84MetersPerDegree * Math.Cos(Center.Latitude * Math.PI / 180d)) + Center.Longitude);
|
||||
point.Y / Wgs84MeterPerDegree,
|
||||
point.X / (Wgs84MeterPerDegree * Math.Cos(Center.Latitude * Math.PI / 180d)) + Center.Longitude);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ namespace MapControl
|
|||
public override Rect BoundingBoxToRect(BoundingBox boundingBox)
|
||||
{
|
||||
var center = LocationToMap(boundingBox.Center);
|
||||
var width = boundingBox.Width * Wgs84MetersPerDegree;
|
||||
var height = boundingBox.Height * Wgs84MetersPerDegree;
|
||||
var width = boundingBox.Width * Wgs84MeterPerDegree;
|
||||
var height = boundingBox.Height * Wgs84MeterPerDegree;
|
||||
|
||||
return new Rect(center.X - width / 2d, center.Y - height / 2d, width, height);
|
||||
}
|
||||
|
|
@ -28,8 +28,8 @@ namespace MapControl
|
|||
public override BoundingBox RectToBoundingBox(Rect rect)
|
||||
{
|
||||
var center = MapToLocation(new Point(rect.X + rect.Width / 2d, rect.Y + rect.Height / 2d));
|
||||
var width = rect.Width / Wgs84MetersPerDegree;
|
||||
var height = rect.Height / Wgs84MetersPerDegree;
|
||||
var width = rect.Width / Wgs84MeterPerDegree;
|
||||
var height = rect.Height / Wgs84MeterPerDegree;
|
||||
|
||||
return new CenteredBoundingBox(center, width, height);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ namespace MapControl
|
|||
if (UriFormat != null)
|
||||
{
|
||||
var tileSize = 360d / (1 << zoomLevel); // tile width in degrees
|
||||
var west = MapProjection.Wgs84MetersPerDegree * (x * tileSize - 180d);
|
||||
var east = MapProjection.Wgs84MetersPerDegree * ((x + 1) * tileSize - 180d);
|
||||
var south = MapProjection.Wgs84MetersPerDegree * (180d - (y + 1) * tileSize);
|
||||
var north = MapProjection.Wgs84MetersPerDegree * (180d - y * tileSize);
|
||||
var west = MapProjection.Wgs84MeterPerDegree * (x * tileSize - 180d);
|
||||
var east = MapProjection.Wgs84MeterPerDegree * ((x + 1) * tileSize - 180d);
|
||||
var south = MapProjection.Wgs84MeterPerDegree * (180d - (y + 1) * tileSize);
|
||||
var north = MapProjection.Wgs84MeterPerDegree * (180d - y * tileSize);
|
||||
|
||||
if (UriFormat.Contains("{bbox}"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,23 +37,23 @@ namespace MapControl
|
|||
public override Point LocationToMap(Location location)
|
||||
{
|
||||
return new Point(
|
||||
Wgs84MetersPerDegree * location.Longitude,
|
||||
Wgs84MetersPerDegree * location.Latitude);
|
||||
Wgs84MeterPerDegree * location.Longitude,
|
||||
Wgs84MeterPerDegree * location.Latitude);
|
||||
}
|
||||
|
||||
public override Location MapToLocation(Point point)
|
||||
{
|
||||
return new Location(
|
||||
point.Y / Wgs84MetersPerDegree,
|
||||
point.X / Wgs84MetersPerDegree);
|
||||
point.Y / Wgs84MeterPerDegree,
|
||||
point.X / Wgs84MeterPerDegree);
|
||||
}
|
||||
|
||||
public override string GetBboxValue(Rect rect)
|
||||
{
|
||||
return string.Format(CultureInfo.InvariantCulture,
|
||||
CrsId == "CRS:84" ? "{0},{1},{2},{3}" : "{1},{0},{3},{2}",
|
||||
rect.X / Wgs84MetersPerDegree, rect.Y / Wgs84MetersPerDegree,
|
||||
(rect.X + rect.Width) / Wgs84MetersPerDegree, (rect.Y + rect.Height) / Wgs84MetersPerDegree);
|
||||
rect.X / Wgs84MeterPerDegree, rect.Y / Wgs84MeterPerDegree,
|
||||
(rect.X + rect.Width) / Wgs84MeterPerDegree, (rect.Y + rect.Height) / Wgs84MeterPerDegree);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace MapControl
|
|||
|
||||
private double GetLineDistance()
|
||||
{
|
||||
var pixelPerDegree = ParentMap.ViewTransform.Scale * MapProjection.Wgs84MetersPerDegree;
|
||||
var pixelPerDegree = ParentMap.ViewTransform.Scale * MapProjection.Wgs84MeterPerDegree;
|
||||
var minDistance = MinLineDistance / pixelPerDegree;
|
||||
var scale = 1d;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace MapControl
|
|||
public abstract class MapProjection
|
||||
{
|
||||
public const double Wgs84EquatorialRadius = 6378137d;
|
||||
public const double Wgs84MetersPerDegree = Wgs84EquatorialRadius * Math.PI / 180d;
|
||||
public const double Wgs84MeterPerDegree = Wgs84EquatorialRadius * Math.PI / 180d;
|
||||
public const double Wgs84Flattening = 1d / 298.257223563;
|
||||
public static readonly double Wgs84Eccentricity = Math.Sqrt((2d - Wgs84Flattening) * Wgs84Flattening);
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace MapControl
|
|||
public const int TileSize = 256;
|
||||
|
||||
public static readonly Point MapTopLeft = new Point(
|
||||
-180d * MapProjection.Wgs84MetersPerDegree, 180d * MapProjection.Wgs84MetersPerDegree);
|
||||
-180d * MapProjection.Wgs84MeterPerDegree, 180d * MapProjection.Wgs84MeterPerDegree);
|
||||
|
||||
/// <summary>
|
||||
/// A default MapTileLayer using OpenStreetMap data.
|
||||
|
|
|
|||
|
|
@ -24,12 +24,12 @@ namespace MapControl
|
|||
{
|
||||
public static double ZoomLevelToScale(double zoomLevel)
|
||||
{
|
||||
return 256d * Math.Pow(2d, zoomLevel) / (360d * MapProjection.Wgs84MetersPerDegree);
|
||||
return 256d * Math.Pow(2d, zoomLevel) / (360d * MapProjection.Wgs84MeterPerDegree);
|
||||
}
|
||||
|
||||
public static double ScaleToZoomLevel(double scale)
|
||||
{
|
||||
return Math.Log(scale * 360d * MapProjection.Wgs84MetersPerDegree / 256d, 2d);
|
||||
return Math.Log(scale * 360d * MapProjection.Wgs84MeterPerDegree / 256d, 2d);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -35,15 +35,15 @@ namespace MapControl
|
|||
public override Point LocationToMap(Location location)
|
||||
{
|
||||
return new Point(
|
||||
Wgs84MetersPerDegree * location.Longitude,
|
||||
Wgs84MetersPerDegree * LatitudeToY(location.Latitude));
|
||||
Wgs84MeterPerDegree * location.Longitude,
|
||||
Wgs84MeterPerDegree * LatitudeToY(location.Latitude));
|
||||
}
|
||||
|
||||
public override Location MapToLocation(Point point)
|
||||
{
|
||||
return new Location(
|
||||
YToLatitude(point.Y / Wgs84MetersPerDegree),
|
||||
point.X / Wgs84MetersPerDegree);
|
||||
YToLatitude(point.Y / Wgs84MeterPerDegree),
|
||||
point.X / Wgs84MeterPerDegree);
|
||||
}
|
||||
|
||||
public static double LatitudeToY(double latitude)
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@ namespace MapControl
|
|||
}
|
||||
|
||||
var topLeft = supportedCrs == "EPSG:4326"
|
||||
? new Point(MapProjection.Wgs84MetersPerDegree * top, MapProjection.Wgs84MetersPerDegree * left)
|
||||
? new Point(MapProjection.Wgs84MeterPerDegree * top, MapProjection.Wgs84MeterPerDegree * left)
|
||||
: new Point(left, top);
|
||||
|
||||
return new WmtsTileMatrix(
|
||||
|
|
|
|||
|
|
@ -39,15 +39,15 @@ namespace MapControl
|
|||
public override Point LocationToMap(Location location)
|
||||
{
|
||||
return new Point(
|
||||
Wgs84MetersPerDegree * location.Longitude,
|
||||
Wgs84MetersPerDegree * LatitudeToY(location.Latitude));
|
||||
Wgs84MeterPerDegree * location.Longitude,
|
||||
Wgs84MeterPerDegree * LatitudeToY(location.Latitude));
|
||||
}
|
||||
|
||||
public override Location MapToLocation(Point point)
|
||||
{
|
||||
return new Location(
|
||||
YToLatitude(point.Y / Wgs84MetersPerDegree),
|
||||
point.X / Wgs84MetersPerDegree);
|
||||
YToLatitude(point.Y / Wgs84MeterPerDegree),
|
||||
point.X / Wgs84MeterPerDegree);
|
||||
}
|
||||
|
||||
public static double LatitudeToY(double latitude)
|
||||
|
|
|
|||
Loading…
Reference in a new issue