Как подсказывают другие ответы, я использую SetView
с LocationRect
.
Однако я обнаружил, что это всегда приводит к низкому уровню масштабирования, поскольку использовались только целые значения.Например, если идеальный уровень масштабирования будет 5,5, вы получите 5,0.Для правильной подгонки я вычисляю новый уровень масштабирования из TargetZoomLevel
и TargetBoundingRectangle
:
viewRect = LocationRect.CreateLocationRect(coordinates);
map.SetView(viewRect);
double scale = map.TargetBoundingRectangle.Height/viewRect.Height;
map.ZoomLevel = map.TargetZoomLevel + Math.Log(scale, 2);
. В этом примере устанавливается уровень масштабирования, соответствующий высоте viewRect
на экране.