在Windows Runtime应用程序中获取GPS坐标(Windows 8.1)
问题描述:
如何在ArcGIS Esri地图中获取点击/点击点的GPS坐标(经度,纬度)?在Windows Runtime应用程序中获取GPS坐标(Windows 8.1)
我试图MapViewTapped
事件,如:
private void myMapView_MapViewTapped(object sender, MapViewInputEventAtgs e)
{
var x = e.Position.X; //e.Location.X;
var y = e.Position.Y; //e.Location.Y;
}
无论它给了大意外的值。
答
您正在使用MapViewInputEventArgs.Position属性 - 这会给出屏幕坐标 - 请参阅sample code for Show Mouse Coordinates。如示例中所示,使用Location属性来获取地图坐标。值得注意的是,您的地图很可能使用了Web Mercator coordinate system - 例如,如果您使用默认的Esri底图创建了MapView。如果是这样,地图坐标将以米为单位报告,范围大约在-20,000,000至+20,000,000之间。
坐标系WGS84以度为单位给出经度和纬度,并由GPS系统使用。要从另一个坐标系(例如MapView的SpatialReference,如果不同于此)转换一个点,可以“投影”该点 - 在GeometryEngine类上使用Project方法,并传入所需的MapPoint和SpatialReference,例如
MapPoint projectedPoint = GeometryEngine.Project(e.Location, SpatialReferences.Wgs84);
请参阅示例演示的Project Coordinate示例。
谢谢!有用 :) –