This article описывает, как получить общий размер карты в пикселях в зависимости от фактического уровня масштабирования.MapControl map size (pixels)
Формула должна быть:
карта ширина = карта пикселей высота = 256 * 2^уровень
К сожалению, это не похоже на работу для MapControl для универсальных приложений. Во-первых, свойство ZoomLevel имеет тип double not integer (как требуется в примере в статье). Но также с целым числом ZoomLevel, то есть 4.0 (int -> 4), формула не работает.
Теперь, я попытался получить размер карты в пикселях с помощью метода MapControl.GetOffsetFromLocation:
private double GetMapSize()
{
Point pW, pE;
myMap.GetOffsetFromLocation(new Geopoint(new BasicGeoposition()
{ Longitude = -90, Latitude = 0 }), out pW);
myMap.GetOffsetFromLocation(new Geopoint(new BasicGeoposition()
{ Longitude = 90, Latitude = 0 }), out pE);
return (pE.X - pW.X) * 2;
}
Это работает с несоответствием некоторых пикселей, но этот вопрос на самом деле не имеет значения.
я получаю на моей поверхности Pro 3 следующие результаты (ZoomLevel 4,0):
Поверхность экрана (масштаб 1,5): 3654px
поверхности внешнего экрана (масштаб 1,0): 3274px
None из этих результатов 4096px, как описано в статье. Результаты верны, и я могу с этим справиться. Но для меня это всего лишь обходной путь, а также если ZoomLevel выше, чем приблизительно 13, метод GetOffsetFromLocation возвращает -1 для pE.X и pW.X (для -90 и 90). Для ближайших долготы к фактическому центру это работает. Кажется, что GetOffsetFromLocation имеет максимальное расстояние. Поэтому мне нужно будет использовать более близкие значения долготы при более высоком ZoomLevel.
Это не совсем четкое решение. Так что мой вопрос: Есть ли способ сохранения, чтобы получить точный размер карты в пикселях для UWP MapControl?
Спасибо!
Maas
Я немного поиграю с этим. Благодаря! Но нет, мой экран имеет плотность пикселей 91. Из Windows.Graphics.Display.DisplayInformation.GetForCurrentView(): Экран поверхности -> ЛогическийDpi: 144 | RawDpi: 216 | Масштаб: 1,5 Внешний экран -> ЛогическийDpi: 96 | RawDpi: 91 | Масштаб: 1,0 – Maas