На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Прокрутка карты зажатой левой клавишей мыши

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
Прокрутка карты зажатой левой клавишей мыши, Прокрутка карты зажатой левой клавишей мыши
 
Здравствуйте! Есть ли возможность с помощью GisToolActive реализовать прокрутку карты зажатой левой клавишей мыши, например как в браузере. И есть ли примеры в учебных материалах ?
 
В событии axcMapView.OnMapMouseMove компонента axMapView есть параметр Shift, позволяющий определить нажатую кнопку мыши в комбинации (или без) с клавишами Ctrl, Shift или Alt.
Сам компонент  axMapView позволяет программно извне управлять позиционированием карты в окне с помощью свойств axcMapView.MapTop и axcMapView.MapLeft.
Таким образом, Вы можете реализовать перетаскивание карты в обработчике события axcMapView.OnMapMouseMove.

В примерах GIS ToolKit Active такая возможность показана только в одном примере - \GISToolActive13\Example\MS2015\Basic\FindObj\:
Код
    Private Sub AxMvMap_OnMouseMove(ByVal sender As System.Object, ByVal e As AxaxGisToolKit.IaxMapViewEvents_OnMouseMoveEvent) Handles AxMvMap.OnMouseMove

        If (btnMapMove.Checked) And (e.shift = 8) Then ' если утоплена "рука" и левая кнопка мыши
            AxMvMap.MapLeft = AxMvMap.MapLeft - (e.x - MouseX)
            AxMvMap.MapTop = AxMvMap.MapTop - (e.y - MouseY)
        End If

        .......
    End Sub
 
Добрый день. С чем могут быть связаны тормоза отрисовки карты при скроле? Картинка залипает больше 2 секунд.

Вот видео

Код примера состоит в том ,что я просто открываю карту методом  MapScreen.MapOpen().
Карта скачана отсюда  https://gisinfo.ru/download_map/?id=104

Да, в ГИС Панораме Мини карта скролится более менее плавно. Ну и возможность перемещать карту мышью работает тоже вполне приемлемо.
Изменено: Александр Смагин - 06.09.2021 16:18:13
 
Скрол отрабатывается Вами программно, или компонент работает в штатном режиме?
 
Цитата
Andrey Gheleznyakov написал:
Скрол отрабатывается Вами программно, или компонент работает в штатном режиме?
В штатном режиме.  
 
Проверила работу отрисовки карты на тестовом примере в 13 и 14 версиях в Visual Studio 12  для С#/
Перечисленные Вами ошибки не получилось повторить.
Пример содержит функцию масштабирования.
 
Цитата
Татьяна Софинова написал:
Проверила работу отрисовки карты на тестовом примере в 13 и 14 версиях в Visual Studio 12  для С#/
Добрый день, Татьяна.
Интересно получается. Запускаю ваш пример, есть небольшие притормаживания.  Допустим с ними можно пока мириться.
Создаю свой пример, добавляю на форму MapScreen и кусок кода с диалогом открытия карты из вашего примера ,но  без масштабирования, чтобы чисто скролить карту. Отрисовка  сильно тормозит, как на первом видео.
Не пойму в чем проблема. Может настройки проекта, версия  студии или еще какие тонкости. Использую Visual Studio 16.
Видео с примерами:
Скрол с вашим кодом
Мой пример    
 
Не понятно в чем дело. Наш пример, который Вы сами же транслируете, работает нормально. Ваш вариант - нет. Скорее всего в Вашем приложении отрабатывает некое события, которое в своих расчетах и тормозит общий процесс?
Изменено: Andrey Gheleznyakov - 08.09.2021 06:47:57
 
Цитата
Andrey Gheleznyakov написал:
Не понятно в чем дело. Наш пример, который Вы сами же транслируете, работает нормально. Ваш вариант - нет. Скорее всего в Вашем приложении отрабатывает некое события, которое в своих расчетах и тормозит общий процесс?
Весь код примера.
Код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TestScrollFeedback
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            MapScreen.PlaceOut = axGisToolKit.TxPPLACE.PP_PICTURE;

        }

        private void btnOpenMap_Click(object sender, EventArgs e)
        {
            OpenMapDialog.FileName = "";
            if (OpenMapDialog.ShowDialog() == DialogResult.OK && OpenMapDialog.FileName != "")
            {
                MapScreen.MapFileName = OpenMapDialog.FileName;
                MapScreen.MapOpen(OpenMapDialog.FileName, true);

            }



        }
    }
}
Создаю специально пустой пример чтобы избежать побочных эффектов. Искренне не понимаю в чем может быть причина. Признаюсь я не мастер настройки студии как и C# в принципе. Я выходец из веба, не судите строго.

Исходный код
Изменено: Andrey Gheleznyakov - 08.09.2021 06:48:41
 
Пришлите весь проект на gisga@yandex.ru
Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности