Создание перетаскиваемых меток для объектов

Мои задачи заставляют меня использовать метки для объектов. Он должен выглядеть как простой прямоугольник с форматированным текстом и кнопками, связанными с объектом строкой. Объект — это позиция (например, визуализированная с изображением) с некоторыми атрибутами, такими как скорость, жестокость, топливо и т. д. Лучшее решение, которое я вижу, — это аннотация (GlobeAnnotation). Аннотация может содержать кнопки, изображения, лексические метки - все, что мне нужно! Но есть проблемы с рендерингом. Аннотация имеет рендеринг TRIANGLE_FAN из буфера двойных пар, и похоже, что я не могу сделать соединительную линию из «лидера» (треугольник, соединяющий позицию и нижнюю часть аннотации). Лидер может соединить позицию только с низом, но иногда мне нужно соединить позицию с левой или правой стороной. Также мое приложение должно обеспечивать перетаскивание этой аннотации. При перетаскивании пользователем положение аннотации должно быть постоянным (есть объект в позиции и начало соединительной линии), а прямоугольник аннотации должен перемещаться с помощью мыши (вторая точка соединительной линии всегда перемещается вместе с прямоугольником).

Моя вторая идея состоит в том, чтобы создать производный класс FeaturedGlobeAnnotation и переопределить некоторые методы рендеринга (и добавить метод setOffset(Point offset)). Также я разработал собственную реализацию SelectListener для изменения смещения аннотации, но не положения. Это решение отлично работает (даже при грубой реализации с выполнением необработанных методов GL для рисования линии), но мне нужно знать, решалась ли эта задача когда-либо раньше, чтобы избежать создания еще одного подражателя. Может быть автономным компонентом или чем-то еще, например, воздушным шаром.


person poljak181    schedule 04.06.2014    source источник


Ответы (1)


По моему ограниченному опыту, класс Annotation выполняет очень простую работу. Похоже, у вас есть какие-то сложные требования. Я не знаю готового решения, отвечающего вашим требованиям, и я бы посоветовал вам продолжить и создать свой производный класс.

Однако есть объекты, нажимаемые и перетаскиваемые, так что обязательно обратите внимание на них.

person naugler    schedule 05.06.2014