Не можете масштабировать несколько путей в Рафаэле? - PullRequest
5 голосов
/ 17 ноября 2011

Я пытался использовать текущий топ Вопрос по SO: Масштабирование нескольких путей с помощью Raphael

... без особой удачи.Я строю карту США через Рафаэля, и хотя карта очень хорошая, мне нужно, чтобы она была, вероятно, на 30% больше, чем она есть в настоящее время.

Мне удалось изменить attr на первоначальном Рафаэлехолст до ".5", но это только размер каждого отдельного пути вместо всего холста.Я также попытался с помощью javascript масштабировать div, содержащий холст, но безрезультатно.

Пути: Фактическая страница: http://praxxgray.com/am/rafe2/mapTest.html

javascript: http://praxxgray.com/am/rafe2/js/initMap.js

Я новичок в Рафаэле, но у меня есть боссы, которые дышат мне в шею, чтобы заставить его работать,Изображение под картой Рафаэля показывает размер, к которому я стремлюсь.Я чувствую, что я рядом, может быть, я называю неправильный объект для изменения размера?

Помогите мне, Оби Ван!

Спасибо!

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

Не знаю, поможет ли это, и это немного странно, но пытались ли вы вставить свою карту в ее собственный экземпляр Raphael и затем использовать Paper.setViewBox (...), чтобы изменить ее размер?

 var map = Raphael(100,100,800,500);
 //
 // draw my very big map, bigger than 800x500
 //
 map.setViewBox(100,100,800,500,true); 
 // doesn't change the size of the raphael instance, but will force the graphics to fit
 // inside it.

setViewBox позволяет изменять область просмотра. По ссылке - «Устанавливает окно просмотра бумаги. Практически это дает вам возможность масштабировать и панорамировать всю поверхность бумаги, задавая новые границы».

Это может быть быстрый способ получить то, что вы хотите. Это только Рафаэль 2, хотя: (

(Это должно работать, но я на самом деле не проверял его. Как я уже сказал, это немного не так ...)

1 голос
/ 17 ноября 2011

Добавьте параметр viewBox и preserveAspectRatio в элемент SVG.Я попытался добавить эти параметры, просто чтобы посмотреть, смог ли я изменить размер, и сделал это.

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
   viewBox="0 0 2500 3100" preserveAspectRatio="none">

Подробнее об атрибуте viewBox здесь .

0 голосов
/ 12 июня 2012

Я придумал этот jsfiddle. Я использую это в моей собственной карте с несколькими регионами. Работает на IE6,8 & 9

http://jsfiddle.net/chrisloughnane/EUwRq/

...