我正在使用Esri for .NET。我使用ScreenToLocation函数通过鼠标点击屏幕坐标。如何将此mappoint转换为4326的SP?
MapPoint mapPoint = Mapview.ScreenToLocation(screenPoint);
我的mappoint不是我点击地图的地方。我得到的坐标为5423799.44921864,-267641.097678069
答案 0 :(得分:2)
您是使用ArcGIS Runtime for Windows store还是运行时使用wpf?
无论如何,你得到一个WebMercator点。要在空间参考之间进行转换,您需要使用wpf上 GeometryService 的项目方法或winstore上的 GeometryEngine
或者,如果您希望通过代码同步转换WebMercator(102100/3857)到WGS84(4326),则可以执行以下操作:
public MapPoint PointToWM(double x, double y)
{
double originShift = 2 * Math.PI * R_MAJOR / 2.0;
double mx = x * originShift / 180.0;
double my = Math.Log(Math.Tan((90.0 + y) * Math.PI / 360.0)) / (Math.PI / 180.0);
my = my * originShift / 180.0;
return new MapPoint(mx, my, new SpatialReference(102100));
}
从WGS84转到WM
{{1}}
请注意,此代码仅适用于WM /来自WGS的WM。对于其他转换,您必须始终使用GeometryService