Необходимо получить текущие границы представления по долготе и широте из текущих значений масштабирования и панорамирования на картах OSM - PullRequest
0 голосов
/ 23 октября 2018

В OSM мне нужно знать долготу и широту моих четырех углов текущей области, как на этом изображении в OSM.

OSM Map Текущее изображение области

По приведенному ниже коду я получил значение центра 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. как обновить текущие границы элементов мозаичного изображения и как получить координатыверхний левый угол.Или любой другой способ найти topleftcorner координату OSM

...