2011-10-28 9 views
23

Widziałem kilka wątków, które adresują to pytanie, ale nic, co naprawdę rozwiązuje mój problem. Mam plik SVG z mapą i różnymi regionami (http://www.mediafire.com/?5pmyevdwbyrb51f). Chcę zrobić coś takiego: http://raphaeljs.com/australia.html.Raphael JS - Użyj pliku SVG

Ale pytanie brzmi, w jaki sposób mogę przekonwertować plik, aby działał w skrypcie? Jak uzyskać te współrzędne? Próbowałem kilku konwerterów i takich, ale muszę to wysysać, bo nie mogę tego zrobić. Może ktoś może pomóc?

+0

możliwy duplikat [plików SVG w Raphael, czy można ich użyć?] (Http://stackoverflow.com/questions/3135061/svg-files-in-raphael-can-they-be-used) –

Odpowiedz

2

Spójrz na kod:

http://raphaeljs.com/tiger.html

<script src="tiger.js"> 
// Load the file with the tiger mapping to a variable 
    var tiger = [0,0,600,600,{type:"path",path:"M-122.304 84.285C-12... 
</script> 

<script> 
// run it 
window.onload = function() { 
    var r = Raphael(tiger).translate(200, 200); 
}; 
</script> 
+0

Ja nie zobacz, jak mi to pomaga. Ten przykład nie używa pliku SVG? Wytłumacz mi, jeśli teraz jestem głupi. Problem polega na uzyskaniu tych współrzędnych (takich jak te w tiger.js) z mojego pliku. – larschanders

+1

https://github.com/crccheck/raphael-svg-import-classic – fmsf

+0

Dzięki temu rozwiązaniu musisz mieć AJAX w pliku .svg jako .txt i wyciągnąć dane ścieżki, aby dostarczyć Rafaelowi. To naprawdę całkiem przyzwoite rozwiązanie. – netpoetica

9

Jeśli masz na myśli używając Raphael zaimportować plik SVG, dzięki czemu można go wyświetlić lub manipulować nim, to nie jest obecnie obsługiwana. Ale możesz sprawdzić rozszerzenia: raphael-svg-import lub raphael-svg-import-classic.

Patrz również SVG files in Raphael, can they be used?

+0

Dzięki za odpowiedź. Już próbowałem ich i nie mogę nikogo do pracy. Jeśli ktoś czuje, że chce spróbować, mam link do mojego pliku w moim pierwszym poście. Nie wiem, co robię źle. Próbowałem z różnymi "ustawieniami" w InkScape, ale to nie jest moja filiżanka herbaty ... – larschanders

+0

Próbowałem także konwertera [tutaj] (https://github.com/wout/raphael-svg-import), ale potrzebujesz aby zapisać całą treść pliku SVG i nie zaakceptuje żadnego formatu svg produkowanego przez inkscape. –

0

dodatkowo mikefrey's answer pomocą raper przykład:

var paper = Raphael(0, 0, 160, 600); 

var rappar = [...]; // here use the output from rappar 

var graphic = paper.set(); 
rappar.forEach(function (item) { 
    graphic.push(paper 
    .path(item.path) 
    .attr('fill', item.fill) 
    .attr('stroke', item.stroke) 
    // ... 
); 
}); 
graphic.transform('s0.8,0.8,0,0'); 
// ... 

za pomocą Raphael v2.2.6 i rappar v0.0.2.