Приветствую Вас, господа разработчики.
В связи с появившимися проблемами с компонентом MapView, а именно при переносе или перерисовки группы объектов большие лаги или исчезновения объектов
я решил сменить MapView на MapScreen.
И сразу проблема с масштабированием карты колесом мыши, представленный ниже код отлично работал с MapView, а вот с MapScreen все улетает.)))
Пишу на C# с использованием GisToolKit ActivX Free 14.0.0.1
Мой код:
private void axaxcMapView1_MouseWheel(object sender, MouseEventArgs e)
{
int numberOfTextLinesToMove = e.Delta * SystemInformation.MouseWheelScrollLines / 120;
int newScale;
if (numberOfTextLinesToMove > 0) newScale = (int)(MapScreen.ViewScale / 1.5);
else newScale = (int)(MapScreen.ViewScale * 1.5);
double metersX = mouseX + MapScreen.MapLeft;
double metersY = mouseY + MapScreen.MapTop;
// Масштабирование с установкой точки масштабирования в центр экрана
axMapPoint axaxMapPoint = new axMapPoint();
MapPoint.cMapView = MapScreen.C_CONTAINER;
MapPoint.PlaceInp = TxPPLACE.PP_PICTURE;
MapPoint.SetPoint(metersX, metersY);
MapScreen.ScaleInPoint(newScale, axaxMapPoint);
}
В связи с появившимися проблемами с компонентом MapView, а именно при переносе или перерисовки группы объектов большие лаги или исчезновения объектов
я решил сменить MapView на MapScreen.
И сразу проблема с масштабированием карты колесом мыши, представленный ниже код отлично работал с MapView, а вот с MapScreen все улетает.)))
Пишу на C# с использованием GisToolKit ActivX Free 14.0.0.1
Мой код:
private void axaxcMapView1_MouseWheel(object sender, MouseEventArgs e)
{
int numberOfTextLinesToMove = e.Delta * SystemInformation.MouseWheelScrollLines / 120;
int newScale;
if (numberOfTextLinesToMove > 0) newScale = (int)(MapScreen.ViewScale / 1.5);
else newScale = (int)(MapScreen.ViewScale * 1.5);
double metersX = mouseX + MapScreen.MapLeft;
double metersY = mouseY + MapScreen.MapTop;
// Масштабирование с установкой точки масштабирования в центр экрана
axMapPoint axaxMapPoint = new axMapPoint();
MapPoint.cMapView = MapScreen.C_CONTAINER;
MapPoint.PlaceInp = TxPPLACE.PP_PICTURE;
MapPoint.SetPoint(metersX, metersY);
MapScreen.ScaleInPoint(newScale, axaxMapPoint);
}