| 
	| 
	
	| 
		
	| 
			
			 
			
				22.10.2013, 23:02
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| 
				Создание интерактивных карт (помещений и т. д.)
			 Всего лишь год назад я впервые попал на этот сайт, начал изучать учебник — JS нужен как важное дополнения к остальным знаниям — и вот, сегодня я пишу первое сообщение в форуме, непосредственно связанное с работой.
 Руководством поставлена задача изучить возможные варианты реализации следующей идеи:
 
 сделать чертежи-рисунки помещений (на основе CADовских чертежей) интерактивными элементами интерфейса.
 
 Фактически пока требуется только одно: сделать некоторые участки чертежа-рисунка кликабельными (и выделяемыми) — так чтобы при клике на рисунок, с участком какого-то помещения, был переход на страницу с детальным описанием этого помещения. Или всплывал поп-ап с описанием, в основе которого пост-бэк на AJAXе.
 
 Т.е. Как сделать рисунок чертежа кликабельным?
 
 Я вижу три пути:
 (1) использвать <map> - относительно понятен.
 (2) Использовать <canvas> - новый для меня тег и область.
 
 В обоих случаях поставить поверх тегов обработчик, который ловит событие на всплытии, получает его объект, а из него, к примеру, data-аттрибут, который дает информацию о том, что делать дальше...
 
 И третий путь: возможно эти задачи уже как-то решены в рамках таких фреймворков как D3.js или Rafael, и не стоит изобретать велосипед. Но я еще не изучал эти фреймворки.
 
 Поэтому очень нуждаюсь в вашем мнении, комментариях, советах по этому поводу.
 
 Спасибо за участие и помощь.
 			 Последний раз редактировалось Den Brown, 22.10.2013 в 23:04.
 |  |  
	| 
		
	| 
			
			 
			
				22.10.2013, 23:23
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| 
	
 
	| Сообщение от Poznakomlus |  
	| Вот реализация вышеописанного http://joomla25.fregate.org.ua/. В админке рисуются карты 4 инструментами круг, полигон, прямоугольник, квадрат. |  
	
 Да, это хороша иллюстрация идеи. Есть ли какие-то пути "автоматизации" рисования карт? или для каждого участка писать координаты индивидуально. У меня будут сотни помещений на одной карте... |  |  
	| 
		
	| 
			
			 
			
				22.10.2013, 23:43
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| спасибо за отличную ссылку, буду изучать
 Никто не интересовался вопросом конвертации CAD-файлов в SVG графику?
 |  |  
	| 
		
	| 
			
			 
			
				23.10.2013, 15:34
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 21.09.2011 
						Сообщений: 35
					 
		
 |  |  
	| Можно наверно еще делать дивы с прозрачным фоном нужной формы и помещать поверх нужного куска картинки . |  |  
	| 
		
	| 
			
			 
			
				23.10.2013, 17:26
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| 
	
 
	| Сообщение от umbabaraumba   |  
	| Можно наверно еще делать дивы с прозрачным фоном нужной формы и помещать поверх нужного куска картинки . |  
	
 Да, тоже хороший вариант. Кажется, что не большая разница с вариантом с тегом  <map>, но наверняка при работе с DIVами будут свои преимущества. |  |  
	| 
		
	| 
			
			 
			
				01.11.2013, 17:40
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| К слову:
 только что узнал, что рисунки, созданные в вектором граф-редакторе, можно сохранять в SVG и просто вставлять в HTML.
 
 Эх, если можно получить доступ к отдельным элементам в пределах одного SVG файла, так чтобы вешать обрабочики события (если они есть) на элементы и менять их стиль - то вообще прекрасно: рисуй в редакторе, раздавай элементам ID (или нужные data-атрибуты), настраивай JS скрипт - и все.
 
 Фактически вопрос в том, являются ли отдельные элементы (графические фигуры) в пределах одного SVG файла - полноценными учатниками DOM или в DOMе SVG файл будет единым элементом, и "кликнуть" только по одному кружку\треугольнику в пределах схемы, состоящей их множетва элементов не получится.
 
 Но не знаю возможно ли это. Буду пробовать!
 			 Последний раз редактировалось Den Brown, 01.11.2013 в 17:51.
 |  |  
	| 
		
	| 
			
			 
			
				01.11.2013, 21:49
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	| пока у меня не получилось получить доступ к элементам в SVG графике, сгенеророванной векторным редактором.
 Тогда я попробовал Rafael.js:
 
 там все работает.
 
 Чем лучше чем Map: требуемый участки не только кликабельны, но и интерактивны.
 
 Чем лучше чем идея с дивами: элементы могут быть не только прямоугольными.
 
 И общая проблема: сложно рисовать.
 
 Но если рисовать все в векторном редакторе, затем сохранять в SVG, оттуда брать координаты, то все будет намного проще.
 
 Тот , инструмент, что предлагал "Poznakomlus" - я еще не попробовал, но предполагаю, что проделал что-то похожее, но только "вручную".
 
 По крайней мере это дало понимание, как SVG работает внутри.
 |  |  
	| 
		
	| 
			
			 
			
				05.11.2013, 08:52
			
			
			
		 |  
	| 
		
			
			| Аспирант       |  | 
					Регистрация: 30.07.2008 
						Сообщений: 87
					 
		
 |  |  
	|  |  |  
	| 
		
	| 
			
			 
			
				05.11.2013, 21:57
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 22.10.2013 
						Сообщений: 19
					 
		
 |  |  
	|  |  |  
 
 
 |  |