2013-02-14 61 views
0

我想用svg绘制一些点。他们是一个小范围的x,y坐标:获取正确的viewbox问题SVG

57.206116 -6.223032 
57.2225 -6.2441702 
57.233299 -6.1833301 
57.246666 -6.210278 
57.208561 -6.2244201 

当他们被绘制时,它们在屏幕上显然非常小。 这是我的视框中命令:

print qq(
<svg width="20cm" height="20cm" viewBox="57 -7 3 3">); 

如何完善这一所以它清楚地表明他们的20 x 20厘米盒子内。

#!/usr/bin/perl 
use DBI; 
use CGI::Carp qw(fatalsToBrowser); 

#Set content type 
print "Content-Type: image/svg-xml\n\n"; 

#Establish connection to database 
$dbh = DBI->connect ('dbi:Oracle:geosgen','user','pass') 
|| die "Man down! Man down!: $DBI::errstr"; 

#Send SQL query for finds 
$sth1 = $dbh->prepare("select table_alias.mot.sdo_point.X, table_alias.mot.sdo_point.Y 
from x.mounts table_alias"); 

$sth1->execute; 


#Set content type 
print qq(<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" 
"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">); 



print qq(<svg width="20cm" height="20cm" viewBox="57 -7 3 3">); 


while (@data = $sth1->fetchrow_array()) { 
print qq(
<g transform="scale(1,-1)"> 
<circle cx="$data[0]" cy="$data[1]" r="0.01" fill="green"> 
</circle> 
</g> 
     ); 
    } 

print qq();

+2

您应该添加完整的XML/SVG。 – simbabque 2013-02-14 16:52:56

回答

0

我试了一下你的代码。

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> 

<body> 
<div id="test"> 
<svg width="20cm" height="20cm" viewBox="57 -7 3 3" > 

<rect x="57" y="-7" width="3" height="3" fill="none" stroke="black" stroke-width="0.01px" /> 

<g > 

<circle cx="57.206116" cy="-6.223032" r="0.01" fill="green"></circle> 
<circle cx="57.2225" cy="-6.2441702" r="0.01" fill="red"></circle> 
<circle cx="57.233299" cy="-6.1833301" r="0.01" fill="blue"></circle> 
</g> 

</svg> 

</div> 
</body> 

我删除了比例尺并添加了一个矩形以查看我们的位置。

这就是我的结果: enter image description here

+0

这是否太接近?你知道x和y的最小值,最大值吗? – smartmeta 2013-02-14 17:54:01

+0

是的多数民众赞成在此非常感谢! – DGraham 2013-02-14 18:22:23

+0

当它有帮助时,接受答案会很好。 ;-) – smartmeta 2013-02-14 19:01:38