脱谷为糠,其髓斯存,神之渭也。山骞不崩,唯百为镇,骨之谓也。 一身精神,具乎两目;一身骨相,具乎面部。
posts - 34, comments - 268, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
一直很忙很忙,没空写点东西。。。。。。。。。

51前写的一个demo,3.8M的Provinces.gml(仅空间数据)发布成压缩过的SVG后327K。
这是load4.htm的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
var svgEmb = null
var svgDoc = null

function init()
{
    svgEmb 
= document.embeds["SVG1"];  
    
//alert(svgEmb);  
    svgDoc = svgEmb.getSVGDocument(); 
    svgEmb.window.getURL(
"line.aspx",loadSVG,"text/xml"); 
}


function loadSVG(templeContent)
{
    
if(templeContent.success)
    
{
        
var domResponse = svgEmb.window.parseXML(templeContent.content);
        
var frag = svgEmb.window.parseXML(svgEmb.window.printNode(domResponse.getElementsByTagName("svg").item(0)), svgDoc);        
        
//frag.firstChild.setAttribute("transform","scale(1,-1)");
        svgDoc.replaceChild(frag.firstChild, svgDoc.rootElement);
        
//svgDoc.rootElement.appendChild(frag.firstChild);
        svgDoc.getElementById("omVectorLayer").setAttribute("transform","scale(1,-1)");
        
        
var svgRect = svgDoc.rootElement.getBBox();
        
//var svgRect = svgDoc.getElementById("omVectorLayer").getBBox();
        var strViewBox = svgRect.x + " " + svgRect.y + " " + svgRect.width + " " + svgRect.height; 
        
//alert(svgRect.x);
        svgDoc.rootElement.setAttribute("viewBox", strViewBox);
        
    }

}


function getSvg()
{
    
//var oPop = window.open();
    //oPop.document.body.innerText = svgEmb.window.printNode(svgDoc);
    alert(svgEmb.window.printNode(svgDoc));
    
//svgDoc.rootElement.setAttribute("transform","scale(1,-1)");
}


function getViewBox()
{
    alert(svgDoc.rootElement.getAttribute(
"viewBox"));
}

</script>
</head>

<body onLoad="init()" bgcolor="#666600" background="background.jpg">
<embed id="SVG1" width="500" height="500" src="test.svg"></embed>
<input value="getsvg" type="button" onClick="getSvg()">
<input value="getviewbox" type="button" onClick="getViewBox()">
</body>
</html>

这是line.aspx的C#代码,需要ZIPLIB
this.Response.ContentType = "image/svg+xml";
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("Region.xsl"));
XPathDocument xpathdocument = new XPathDocument(Server.MapPath("chinese.gml"));

GZipOutputStream CompressedOutput = new GZipOutputStream(Response.OutputStream, 100);
XmlTextWriter writer = new XmlTextWriter(CompressedOutput, Encoding.UTF8);
writer.Formatting=Formatting.Indented;
xslt.Transform(xpathdocument, null, writer, null); 
CompressedOutput.Finish();

下面是截图,弹的的数字的当前的viewbox。(少了几个省是因为XSLT还没写完)
未命名-1.gif

Feedback

#1楼    回复  引用  查看    

2005-05-13 17:20 by 置身珠海,学习与奋斗      
这个页面是动态生成的吗?
这么强!

记下先.

#2楼 [楼主]   回复  引用  查看    

2005-05-15 18:18 by edison1024      
SVG是动态生成的,数据就是Provinces.gml这个文件。
页面不需要动态生成,它上面只欠入了一个空svg文件,然后通过getURL这个函数动态载入压缩后的svg数据。(svg可以自动解压svgz格式数据)

当然也可以换成其他的数据源。例如shape文件。

这些点都是绝对坐标,其实利用SVG的特性,以这个中国的数据来看,甚至可以压得更小。

我有个很好的开发矢量webgis的计划,但是现阶段还没时间开始着手,希望与精通svg技术的朋友一起交流。


这次我丢了块砖,有玉的你们都砸过来啊~~~!!!

#3楼    回复  引用    

2005-05-19 11:30 by yuxi2000 [未注册用户]
这个砖丢得到好啊,我接了,我最近也在搞SVG关于地理方面的应用,尤其是WebGis方面,已经加了你的qq,一起研究啊

#4楼    回复  引用    

2005-06-07 20:07 by yuxi2000 [未注册用户]
有没有人试验过,svgviewer的渲染能力,我试验了一下简单的线(polyline)3000多条,好像有点慢阿
其实对我们搞gis的人来说,svg的动画能力基本用不上,而且svg的动画实在比不上flash,svg应该强调它的2D矢量绘图能力和渲染能力,这样才真正能成为广为流传的标准!不要以打倒flash为目标,避基锋芒,扬己长处才是重点阿

#5楼 [楼主]   回复  引用  查看    

2005-06-08 11:09 by edison1024      
xmlspy将gml转化过来?

我也用xmlspy啊。但是没见过这个功能啊?在哪里?怎么用啊

#6楼    回复  引用    

2005-09-19 17:42 by Digime [未注册用户]
大家以后多交流
msn:digime@126.com
qq:314345737

#7楼    回复  引用  查看    

2005-10-07 14:27 by unixsam      
请加我qq4150669
email:sqlsam@126.com

你这个对我很重要啊

#8楼    回复  引用  查看    

2005-10-07 14:36 by unixsam      
在哪里能看到你的qq啊?

#9楼    回复  引用    

2005-10-11 22:20 by unixsam [未注册用户]
想了好几天。进一步实现webgis的功能还能继续做下去吗?

#10楼    回复  引用    

2005-10-12 15:44 by wuxuyu [未注册用户]
xslt文件能提供吗?
谢谢啦

#11楼 [楼主]   回复  引用  查看    

2005-10-17 21:48 by edison1024      
好几个月前的东西了啊,这个例子都不知道扔到哪了。。。。
自己写一个吧。

#12楼    回复  引用    

2007-08-29 21:01 by 张福勇 [未注册用户]
你好,不知是否可以提供一下xslt文件啊,我不知道该怎么写他啊,谢了

#13楼    回复  引用    

2007-08-29 21:02 by 张福勇 [未注册用户]
忘了,我的邮箱:fuyong1681@163.com

#14楼    回复  引用    

2008-02-29 16:13 by 张澜 [未注册用户]
好东西,能不能加我QQ
691052159

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-05-10 10:28 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: