Помогите, пожалуйста, с алгоритмом попадания в точку, определение значка аэропорта. |
Здравствуйте, гость ( Вход | Регистрация )
Помогите, пожалуйста, с алгоритмом попадания в точку, определение значка аэропорта. |
AD |
19.12.2008, 12:22
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
На карте есть значок определения аэропорта. При нажатии правой клавиши мыши появляется меню, приведенное на картинке. Так в этом меню есть подменю "Object", которое должно быть видимым если мы попали в значок аэропорта. Это получается только при больших масштабах или же еще в каком-то таком странном случае. Помогите пожалуйста, вот код определения экранного расстояния, при котором я считаю, что необходимо показывать подменю. У кого есть какие идеи?
Вот рисунок: [attachment=341:apt_defining.JPG] |
|
|
AD |
19.12.2008, 13:22
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Вот алгоритм проверки расстояния в географических координатах (наоборот, работает при очень малых масштабах)
|
|
|
Tonal |
19.12.2008, 15:08
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Для точечных объектов (или объектов видимых на данном масштабе как точечные, нужно проверять не совпадение координат объекта и указателя, а попадение объекта в курсорную область.
Курсорная область - обычно квадрат вокруг указателя, размером в 2-4 пиксела (лучше дать возможность настроить). |
|
|
AD |
19.12.2008, 15:28
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Для точечных объектов (или объектов видимых на данном масштабе как точечные, нужно проверять не совпадение координат объекта и указателя, а попадение объекта в курсорную область. Курсорная область - обычно квадрат вокруг указателя, размером в 2-4 пиксела (лучше дать возможность настроить). А разве первый метод подобную вещь не делает? Если нет. То как это сделать? Помоги пожалуйста! |
|
|
AD |
19.12.2008, 17:28
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Tonal натолкнул на хорошую мысль. Реализовал так:
|
|
|
Tonal |
19.12.2008, 18:48
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Да, примерно так. Ну и константу 8 лучше таки меть настраивать - оптимальное значение зависит от разрешения монитора и дрожжания рук пользователя.
|
|
|
Текстовая версия | Сейчас: 28.1.2025, 15:20 |