Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> схема с навигацией, что-то типа карты 
:(
    Опции темы
Enterprise
Дата 23.4.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



Привет. Вот какая у меня проблемка появилась: надо как то сделать привязку объектов к технологической схеме. Т.е. надо выводить некоторые характеристики объекта, который выбирается путем клика по определенной области схемы. Примерно как если кликать по карте города, а показываться будут адреса домов по которым и было нажатие мышиной кнопки. Совершенно не знаю с чего и начинать :( Важен ли формат в котором сделана схема? Или можно пользоваться обычными изображениями типа jpg? Какие библиотеки для этого нужны? Может кто примерчиком поделится или описанием? Заранее благодарю за помощь!!
PM MAIL   Вверх
snaker
Дата 23.4.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 13.4.2007

Репутация: 1
Всего: 1



Если пользовать JPG то придётся делать векторные изображения, грубо говоря, многоугольники, и потом при клике сверять, в какую область попадает точка(примерно, как это делается в HTML с картинками)... 
Придется, наверно, организовать свой формат.... И сделать эдитор, чтоб посоздавать эти карты...

Желательно, конкретизировать задачу... что именно надо получить..
PM MAIL ICQ   Вверх
nornad
Дата 23.4.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Ну, раз никто ничего не говорит и не советует, то выскажусь хотя бы я. smile

В общем, я бы делал так.
Берём картинку в любом формате. Определяем в пикселах регионы (области) и сохраняем их в каком-либо формате. Для каждого региона тут же сохраняем и информацию, которая должна отображаться при клике.

Далее берём панельку. Делаем отрисовку на ней картинки в натуральную величину. Панельку ложим в скроллпейн.
Подгружаем соранённую информацию о регионах.
При клике на панельке (яко и на "картинке") проверяем, не попали ли в какой-нибудь регион. Если попали - выводим в каком-либо виде нужную информацию (тултип, диалог и т.п. кошмарные вещи).

Идея простейшая. Делал так в с++. На жабе не уверен только в том, можно ли нормально скроллить панель с картинкой в скроллпейне так, чтобы выглядело, будто скроллится картинка (ну, не игрался я с картинками). В остальном - всё решаемо.
Идею описал в простейшем виде, но при желании нетрудно сделать вариант поумнее и поудобнее. Главное - общая суть. ;)

Добавлено через 2 минуты и 58 секунд
Ну вот. smile Пока писл, уже ответили. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Enterprise
Дата 23.4.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



А на счет целесообразности подключения библиотек ГИС в свое приложение для решения задачи навигации есть у кого нить идеи?
PM MAIL   Вверх
nornad
Дата 23.4.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Как мне кажется, ГИС работает только с векторными изображениями. Но я с нею не игрался, так что не гарантирую.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
fixxer
Дата 24.4.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



Цитата

Как мне кажется, ГИС работает только с векторными изображениями. Но я с нею не игрался, так что не гарантирую. 


Да, конечно, объектами ГИС являются векторные элементы и битмапы как символы. Однако во всех ГИС есть возможность использовать большой битмап как подложку. В общем схема такова, подкладывается битмап, по нему обрисовываются объекты и назначаются свойства.

Добавлено @ 09:39
Цитата

На жабе не уверен только в том, можно ли нормально скроллить панель с картинкой в скроллпейне так, чтобы выглядело, будто скроллится картинка (ну, не игрался я с картинками)


Легко. Делаем наследника JComponent, инкапсулируем в него BufferedImage, preferredSize выставляем в размер картинки, а в paintComponent делаем примерно так:

Код

protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Rectangle clip = g.getClipBounds();
            Image image = this.image.getSubimage(clip.getX(), clip.getY(), clip.getWidth(), clip.getHeight());
            g.drawImage(image, clip.getX(), clip.getY(), this);
}


Далее кладем компонент в JScrollPane и наслаждаемся.

Только не забываем сделать JScrollPane#getViewport().setScrollMode(JViewport.BLIT_SCROLL_MODE) и в компоненте setOpaque(true), чтобы не весь Viewport перерисовывался, а только то что нужно.

Мог где-то накосячить - писал здесь.

Это сообщение отредактировал(а) fixxer - 24.4.2007, 09:39


--------------------
user posted image
PM MAIL ICQ   Вверх
Enterprise
Дата 24.4.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



Вполне возможно что мне и скроллинг не будет нужен - схемы будут влазить на экран и так smile Уже думал на счет кнопок с элементами схемы на них, так чтоб не отличались от картинки и все это на панельку загнать. Как Вам такая идея?
PM MAIL   Вверх
fixxer
Дата 24.4.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



Цитата(Enterprise @ 24.4.2007,  10:39)
Вполне возможно что мне и скроллинг не будет нужен - схемы будут влазить на экран и так smile Уже думал на счет кнопок с элементами схемы на них, так чтоб не отличались от картинки и все это на панельку загнать. Как Вам такая идея?

Думаю лучше сделать как писал nornad. Ну типа завести свой фомат на основе xml, где описан битмап, регионы на нем и что делать при щелчке на регион, например послать запрос в базу, можно в базе все хранить, но мне не нравится, не универсально.


--------------------
user posted image
PM MAIL ICQ   Вверх
nornad
Дата 24.4.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 6
Всего: 31



Цитата(Enterprise @  24.4.2007,  13:39 Найти цитируемый пост)
Как Вам такая идея? 

Если все регионы прямоугольные и без поворотов относительно горизонтали, то в принципе можно попробовать.
Я сам ни разу не делал кнопку, которую не отличить от фона, но, думаю, это не такая уж и проблема. В крайнем случае можно создать свой класс кнопки. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Enterprise
Дата 3.5.2007, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



Неожиданный поворот событий smile
Схем пока нет, но предполагаются они в векторном виде, возможно автокад. Каким образом можно использовать автокадовскую графику в своем приложении?
PM MAIL   Вверх
fixxer
Дата 3.5.2007, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



У Автокада два формата dwg - закрытый, dxf - открытый с довольно-таки простой и описаной структурой.

Добавлено через 6 минут и 7 секунд
Например:
тынц
еще тынц


--------------------
user posted image
PM MAIL ICQ   Вверх
Enterprise
Дата 4.5.2007, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



Большое спасибо за ссылки!!
А случайно на русском ничего не завалялось в запасе, а то мой буржуйский не идеален? smile 
PM MAIL   Вверх
Enterprise
Дата 4.5.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



Глянул dxfviewer и его новую бета версию под свинг и появились вопросы:
1. сделан он как оконное приложение, а мне бы хотелось использовать его (не обязательно его, можно подобный)функционал в своем приложении. Как это можно сделать?
2. снова возникает вопрос с навигацией т.е. надо выводить некоторые характеристики объекта, который выбирается путем клика по определенной области схемы. Как можно этого добиться? 
И что для этого надо использовать?
PM MAIL   Вверх
fixxer
Дата 4.5.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 15
Всего: 27



Дык исходники есть. Курите их, и используйте части в своем приложении.


--------------------
user posted image
PM MAIL ICQ   Вверх
Enterprise
Дата 4.5.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 20.6.2006

Репутация: нет
Всего: 1



на dxfviewer исходников нет, да еще и новый обфускатором обработан :(
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0825 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.