需要从OSM地图中的当前缩放和平移值获取经度和纬度视图的当前边界

时间:2018-10-23 10:48:33

标签: c# google-maps maps openstreetmap osmdroid

在OSM中,我需要知道当前区域四个角的经度和纬度,就像OSM中的这张图片一样。

OSM Map current Area Image

通过以下代码,我得到了控件的中心X和Y值

var centerX = TileLayer.ControlSize.Width / 2;

var centerY = TileLayer.ControlSize.Height / 2;

通过以下方法,我将中心像素值转换为纬度,   经度。

private PointF GetPanChangedArguments(double pointX, double pointY)
{
PointF pointXY = new PointF();

foreach (var tile in TileLayer.Tiles)
{
if (tile.ImageBounds != null && tile.ImageBounds.Contains((int)pointX, (int)pointY))
{
  var actualXPoint = (pointX - tile.ImageBounds.Left);
  var actualYPoint = (pointY - tile.ImageBounds.Top);
  var tileSize3 = ((1 << (TileLayer.Scale - tile.Scale)) * 256);
 tileSize3 = (int)(tileSize3 * SfMaps.DENSITY);
 var point = TileLayer.PointToLatLon(actualXPoint + tile.X * tileSize3, actualYPoint + tile.Y * tileSize3, TileLayer.Scale);
  pointXY = new PointF(point.X, point.Y);
  break;
   }
 }

  return pointXY;
}

现在,我需要左上角的经度和纬度,我曾经使用此方法传递了0,0,但是图像边界未针对比例值1.1、1,2..etc更新,因此边界值已更新仅适用于比例值2。 如何更新图块的当前边界以及如何获取左上角的坐标。或者是找到OSM topleftcorner坐标的任何其他方式

0 个答案:

没有答案