﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-内蒙古java团队-随笔分类-申请加入java团队</title><link>http://www.blogjava.net/gdws/category/16478.html</link><description>j2se,j2ee开发组</description><language>zh-cn</language><lastBuildDate>Sun, 15 Jun 2014 05:47:10 GMT</lastBuildDate><pubDate>Sun, 15 Jun 2014 05:47:10 GMT</pubDate><ttl>60</ttl><item><title>遇到服务端获取不到post参数问题？大家帮忙梳理下。</title><link>http://www.blogjava.net/gdws/archive/2014/06/14/414737.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 14 Jun 2014 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2014/06/14/414737.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/414737.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2014/06/14/414737.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/414737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/414737.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 遇到服务端获取不到post参数问题？大家帮忙梳理下。&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2014/06/14/414737.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/414737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2014-06-14 10:19 <a href="http://www.blogjava.net/gdws/archive/2014/06/14/414737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java线程池管理及分布式Hadoop调度框架搭建【转】</title><link>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 06 May 2014 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/413326.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2014/05/06/413326.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/413326.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/413326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java线程池管理及分布式Hadoop调度框架搭建&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2014/05/06/413326.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/413326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2014-05-06 16:14 <a href="http://www.blogjava.net/gdws/archive/2014/05/06/413326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>技术讨论群开通了！群号：171844570</title><link>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 29 Sep 2013 07:53:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/404618.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/09/29/404618.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/404618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/404618.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 技术讨论群开通了！&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/09/29/404618.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/404618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-09-29 15:53 <a href="http://www.blogjava.net/gdws/archive/2013/09/29/404618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EditPlus配置Java语法自动补全功能[转]</title><link>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 07 Jul 2013 00:28:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/401281.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/07/07/401281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/401281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/401281.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: EditPlus配置Java语法自动补全功能&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/07/07/401281.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/401281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-07-07 08:28 <a href="http://www.blogjava.net/gdws/archive/2013/07/07/401281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>本月起Oracle将不再提供Java 6的安全更新</title><link>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 21 Feb 2013 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/395544.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2013/02/21/395544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/395544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/395544.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本月起Oracle将不再提供Java 6的安全更新&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2013/02/21/395544.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/395544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2013-02-21 17:49 <a href="http://www.blogjava.net/gdws/archive/2013/02/21/395544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>性能测试结果分析原则【转】</title><link>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Mon, 05 Mar 2012 05:53:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/371260.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2012/03/05/371260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/371260.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/371260.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 测试结果分析&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2012/03/05/371260.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/371260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2012-03-05 13:53 <a href="http://www.blogjava.net/gdws/archive/2012/03/05/371260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FDO</title><link>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 07 Dec 2011 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/365727.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/12/07/365727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/365727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/365727.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em"><strong><strong style="background-color: #ffff66; color: black">FDO</strong> 数据访问技术</strong></p>
<p style="text-indent: 2em">长久以来，由于地理空间信息行业的固有特点，在这一领域中存在着多种不同的文件或数据库格式。当用户使用了某个公司的数据存储格式之后，常常就被迫使用同一个公司的软件，以访问他们自己的数据。如果希望使用其它公司的软件，就往往要耗费大量的精力把数据从一种格式转换成另一种格式，或者设法去读写这些专有格式。在这个过程中，可能导致的问题包括:</p>
<p style="text-indent: 2em">&#9670; 数据丢失:例如一种格式中记录的数据可能无法或很难转移到另一种格式中;</p>
<p style="text-indent: 2em">&#9670; 精度损失:例如把数据从一个双精度的格式中转移到单精度甚至整型的格式中;</p>
<p style="text-indent: 2em">&#9670; 数据冗余:同一份数据要创建多种格式的拷贝;</p>
<p style="text-indent: 2em">&#9670; 过时信息:当一个版本的数据更新后，未能及时更新其它格式的版本，导致项目成员使用过时的数据而导致不必要的错误;</p>
<p style="text-indent: 2em">&#9670;浪费成本:大量的时间和金钱耗费于毫无生产性的工作。</p>
<p style="text-indent: 2em">在<strong style="background-color: #ffff66; color: black">FDO</strong>技术的帮助下，针对每种现有的数据存储格式，只要编写一段程序，将原有的数据存储&#8220;翻译&#8221;到<strong style="background-color: #ffff66; color: black">FDO</strong> API，就可以提供给使用<strong style="background-color: #ffff66; color: black">FDO</strong>的应用程序访问。这个&#8220;翻译&#8221;程序就称为<strong style="background-color: #ffff66; color: black">FDO</strong> Provider。只要安装了<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，应用程序就可以通过调用<strong style="background-color: #ffff66; color: black">FDO</strong>接口来直接访问相应的数据存储，而不再需要进行格式转换。因此，开发人员可以将更多的精力集中于应用程序逻辑，而不是处理各种数据格式。</p>
<p style="text-indent: 2em">Autodesk不仅制订了<strong style="background-color: #ffff66; color: black">FDO</strong> API的标准，还开发了一系列的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider提供给用户。目前已包括:</p>
<p style="text-indent: 2em">&#9670; 文件型数据源:<strong style="background-color: #a0ffff; color: black">SDF</strong>、SHP;</p>
<p style="text-indent: 2em">&#9670; 数据库型数据源:ArcSDE、Oracle*、MS SQL Server*、MySQL、ODBC;</p>
<p style="text-indent: 2em">&#9670; Web数据源:符合OGC规范的WMS/WFS（只读）;</p>
<p style="text-indent: 2em">&#9670; 光栅数据源:多种常见的二维光栅格式和DEM格式*（只读）。</p>
<p style="text-indent: 2em">为了推广<strong style="background-color: #ffff66; color: black">FDO</strong>技术的应用，Autodesk与OSGeo合作，将<strong style="background-color: #ffff66; color: black">FDO</strong>作为一个开放的标准发布（http://<strong style="background-color: #ffff66; color: black">fdo</strong>.osgeo.org/），并将已有的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider作为免费的开源产品贡献给社区（列表中带*号的除外）。</p>
<p style="text-indent: 2em">在OSGeo的推动下，<strong style="background-color: #ffff66; color: black">FDO</strong>正在成为访问地理空间数据格式的统一的标准，并且已经由开源社区的开发人员（而非Autodesk）提供了更丰富的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，包括OSGeo <strong style="background-color: #ffff66; color: black">FDO</strong> Provider for PostGIS和OSGeo <strong style="background-color: #ffff66; color: black">FDO</strong> Provider for GDAL/OGR。这些Provider程序都基于标准的<strong style="background-color: #ffff66; color: black">FDO</strong>接口，因此应用程序可以轻松的使用它们来扩展其支持的格式。</p>
<p style="text-indent: 2em">另外，由于<strong style="background-color: #ffff66; color: black">FDO</strong> Provider本身并不必须是开源的，因此对于原先私有数据格式的所有者，即使在不公开该格式的情况下，也可以通过发布<strong style="background-color: #ffff66; color: black">FDO</strong> Provider使得其它开发人员和应用软件可以访问该格式中存储的数据。借助<strong style="background-color: #ffff66; color: black">FDO</strong> Provider，应用软件还可以访问遵循OGC（Open Geospatial Consortium）标准的WMS/WFS（网络地图/要素服务）站点，从而获取基于Web的公开的地图数据资源。</p>
<p style="text-indent: 2em">有了<strong style="background-color: #ffff66; color: black">FDO</strong>，企业就不再局限于某一数据格式的软件供应商，而是可以自由的选择功能更强大、价格更低廉的软件来访问其自身的数据资源，从而可以降低成本，提高生产力。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong><strong style="background-color: #a0ffff; color: black">SDF</strong>空间数据格式</strong></p>
<p style="text-indent: 2em">Autodesk不仅推出了<strong style="background-color: #ffff66; color: black">FDO</strong>技术以访问现有的地理空间数据格式，还开发了新的开放的空间数据格式<strong style="background-color: #a0ffff; color: black">SDF</strong>（Spatial Data Format）。<strong style="background-color: #a0ffff; color: black">SDF</strong>格式是基于开源数据库格式sqlite（http://www.sqlite.org/），并且针对大型GIS数据集的存储进行了优化。</p>
<p style="text-indent: 2em"><strong style="background-color: #a0ffff; color: black">SDF</strong>是一种易于使用的文件型空间数据格式，它能够在一个文件中以表格的方式存储多种地理要素，包括多种几何类型（点、线、多边形和圆弧）以及关联的属性信息。与SHP相比，它更为小巧便携，使用双精度存储，支持真正的圆弧对象，并且支持海量数据存储（可存放超过100GB的数据），性能优越。</p>
<p style="text-indent: 2em">而与Oracle等真正的数据库系统相比，它的成本更低廉，更易于复制和传送，因此更适合于个人或小型系统使用。使用<strong style="background-color: #ffff66; color: black">FDO</strong>技术，还能够轻松的将<strong style="background-color: #a0ffff; color: black">SDF</strong>转换成其它格式，因此当企业规模发生变化，需求从小型系统进化到大型数据库系统时，可以很方便的将<strong style="background-color: #a0ffff; color: black">SDF</strong>的数据迁移进入Oracle这样的数据库。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>DWF图形技术</strong></p>
<p style="text-indent: 2em">DWF（Design Web Format）图形格式是一种专为网络应用而设计的矢量图形格式，可将其称为&#8220;网络时代的电子图纸&#8221;。DWF与AutoCAD DWG看起来相似，但也有很大的不同。</p>
<p style="text-indent: 2em">首先，DWF是高度压缩的格式，体积小巧，因此更便于网络传输;其次，DWF是专为图形浏览、审阅和打印而设计的，它忠实的再现了原始图形，但却不可进行更改（只能添加批注），因此能够保证数据的安全可靠性;最后，DWF是一种智能的图形格式，它不仅支持图层控制、电子量测、三维模型和多页图纸集，更重要的是它还包含了对象的属性数据。</p>
<p style="text-indent: 2em">例如，在一个DWF的地图文件中，审核人员不仅可以选中一个地块，用电子方式测量它的面积，还可以查看其中包含的地块属性，例如产权所有者、绿化率和建筑密度。当发现错误时，可以在图上添加电子批注，然后将DWF文件发回给制图人员修改。因此，在基于网络的图形浏览和审批流程中，DWF是最佳的数据格式。</p>
<p style="text-indent: 2em">DWF对于Web应用也有非常重要的意义。我们不仅可以在安装了DWF Viewer插件的Internet Explorer软件中直接浏览DWF文件，更重要的是，由于DWF是一种流媒体格式，这意味着可以在文件下载的过程中逐步显示其中的内容，而不是等到整个文件下载完成之后才显示其全部内容。因此，基于DWF技术的Web应用能提供更好的用户体验。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>MapGuide Open Source</strong></p>
<p style="text-indent: 2em">MapGuide Open Source是Autodesk开源的地理空间信息技术的集大成者。它综合利用了多种开源技术，提供了一个先进的WebGIS平台，用于集成多种数据源，建立一个基于Web的地理空间信息应用系统，将地理空间数据发布到Internet/Intranet进行共享。并且，由于MapGuide Open Source是专门针对WebGIS应用开发的，因此非常容易学习和使用，性能也更为出色。</p>
<p style="text-indent: 2em">MapGuide Open Source是由Autodesk独立开发的全新产品，并于2005年11月发布。尽管其名称与以前的Autodesk MapGuide 6.5相似，但是新的MapGuide是完全重新开发的，使用了与以前截然不同的技术，因此实际上是两个完全不同的产品。新的MapGuide包含两个版本:开源版本MapGuide Open Source和商业版本Autodesk MapGuide Enterprise 2007。</p>
<p style="text-indent: 2em">这两个版本的内核完全相同，绝大多数功能也一样，但商业版本提供了更多的高级功能（例如用于Oracle和SQL Server的<strong style="background-color: #ffff66; color: black">FDO</strong> Provider），并且可以获得Autodesk公司提供的技术支持和服务。</p>
<p style="text-indent: 2em">与以前的Autodesk MapGuide 6.5相比，MapGuide Open Source（也同样适用于商业版本）使用了最新的流行技术，因此更加卓越。其主要的新特性如下:</p>
<p style="text-indent: 2em">&#9670; HTML（AJAX）和DWF两种浏览方式</p>
<p style="text-indent: 2em">MapGuide Open Source可集成服务器端的多种数据源，并通过HTML方式或DWF方式发送到客户端。这两种方式提供了几乎完全相同的界面和功能，包括动态的图形缩放和平移、图层控制、选中要素并查看属性数据、浮动提示、图上测量和缓冲区分析等。</p>
<p style="text-indent: 2em">在HTML方式中，服务器端的地理空间数据被转换成光栅图像发送到浏览器，使用AJAX（Asynchronous JavaScript and XML）技术进行用户交互，而无需在客户端安装任何插件。而在DWF方式中，发送到客户端的是DWF格式的矢量数据，使用浏览器内嵌的DWF Viewer进行查看，因此能够提供更快的用户响应速度、更好的缩放和打印性能，另外还可以将DWF文件保存到本地以备脱机浏览。</p>
<p style="text-indent: 2em">&#9670;使用<strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术</p>
<p style="text-indent: 2em">MapGuide Open Source使用<strong style="background-color: #ffff66; color: black">FDO</strong>作为数据访问的接口，因此它能够无缝直接读取多种地理空间数据格式，包括<strong style="background-color: #a0ffff; color: black">SDF</strong>、SHP、ArcSDE等。另外，在Autodesk MapGuide Enterprise这一商业产品中还提供了对Oracle和SQL Server的支持。作为一款经过OGC认证的产品，MapGuide Open Source还支持通过WMS/WFS集成和发布Web地图数据。</p>
<p style="text-indent: 2em">&#9670; 更强大的图形平台</p>
<p style="text-indent: 2em">MapGuide Open Source还具有更强大的图形显示性能，包括支持真彩色、TrueType字体、地图符号库、透明填充和智能的文字标注功能。另外，它还提供了更方便的用户交互界面。很多在以前的MapGuide 6.5中需要通过开发人员编程实现的常用功能，现在都可直接从MapGuide产品中获取。</p>
<p style="text-indent: 2em">&#9670; 空间应用服务器</p>
<p style="text-indent: 2em">由于MapGuide Open Source是在服务器端进行空间数据的访问、查询和分析，因此这就赋予它一种强大的特性，作为一个空间应用服务器，以&#8220;机器到机器&#8221;的方式与其它应用系统进行交互。</p>
<p style="text-indent: 2em">简单来讲，当另一个应用软件（不限于Web浏览器）按照事先约定的方式向MapGuide Open Source服务器发送一个请求时，MapGuide Open Source接受这个请求，执行其操作（例如查询某个指定区域内的地理空间数据），然后将操作的结果以事先约定的格式发送给该应用软件，然后该软件就可以按照其自身的需求对返回的信息进行处理。</p>
<p style="text-indent: 2em">将MapGuide作为空间应用服务器的一个最新例子，是加拿大的Nanaimo市使用它与Google Earth进行集成。该网站（http://earth.nanaimo.ca/）可以将市政府的MapGuide服务器中的空间数据输出为kml格式（Google Earth的文件格式）。于是，当用户在Google Earth客户端中打开一个包含MapGuide服务器地址的kml文件时，Google Earth客户端就向该MapGuide服务器进行查询。</p>
<p style="text-indent: 2em">而MapGuide服务器接收请求后，就查询该地区的空间数据并生成kml格式返回给Google Earth客户端。然后，Google Earth客户端就可以显示来自MapGuide的空间数据并叠加到它自身的卫星影像上。</p>
<p style="text-indent: 2em">因此，MapGuide不仅仅是一个Web地图平台，更是一个基于Web的空间数据引擎。使用MapGuide，可以很容易的为其它应用系统提供空间查询和分析功能，或是将分布于多个系统中的空间数据集成到一个客户端上进行浏览。</p>
<p style="text-indent: 2em">MapGuide Open Source（以及Autodesk MapGuide Enterprise）提供了如此之多的强大功能，因此能够用于架设企业级的地理空间信息应用系统。</p>
<p style="text-indent: 2em">另外，Autodesk还提供了与之配套的开发工具Autodesk MapGuide Studio，用于收集和整理地图数据、创建地图显示样式，以及集成用.net、Java或PHP开发的应用程序逻辑，并在发布之前对整个系统进行预览。Autodesk MapGuide Studio是一个独立的商业软件，但Autodesk也提供了可下载的免费试用版本，并且可向开发商合作伙伴提供用于开发的许可。</p>
<p style="text-indent: 2em">此外，MapGuide Open Source还能够与桌面软件Autodesk Map 3D 2007协同使用，以简化地图创建到发布的流程。Autodesk Map 3D 2007是基于AutoCAD的地图制作与编辑软件（商业产品），它也同样使用<strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术，因此能够直接访问多种地理空间数据格式，使用AutoCAD工具进行编辑，并创建地图显示样式和制作专题地图。使用Map 3D制作的地图可以直接输出到MapGuide Open Source服务器上进行发布，并且保持在Map 3D中做好的显示样式。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>采用LGPL授权</strong></p>
<p style="text-indent: 2em">与开源软件中流行的GPL授权不同，Autodesk在MapGuide Open Source以及大部分<strong style="background-color: #ffff66; color: black">FDO</strong> Provider中使用的是LGPL授权。与GPL相比，LGPL授权是一种更为宽松的授权。</p>
<p style="text-indent: 2em">如果您在自己开发的软件产品中包含了基于LGPL授权的产品（例如在MapGuide Open Source的基础上开发的应用系统），LGPL并不要求开放您新增的这些代码（与之相反，GPL授权要求开放您新增的所有代码）。您所开发的新软件可以是开放的或者私有的，可以是免费的或者收费的，没有任何限制;但如果修改了其中原产品的部分代码，那么您必须明确的指出修改的部分，并公布修改后的代码。因此，与采用GPL授权的开源软件（例如MapServer）相比，MapGuide Open Source更加适合于商业应用。</p>
<p style="text-indent: 2em">事实上，Autodesk MapGuide Enterprise 2007就是基于MapGuide Open Source的一个商业产品，它包含MapGuide Open Source的所有功能。</p>
<p style="text-indent: 2em">为了让更多用户从MapGuide Open Source受益，Autodesk将此软件捐献给OSGeo基金会。用户可从OSGeo网站下载和使用该产品及其源代码。</p>
<p style="text-indent: 2em">这意味着MapGuide Open Source不再属于Autodesk所有，而是属于以OSGeo为代表的全体开源社区。但同时也需注意，Autodesk不对MapGuide Open Source的用户提供技术支持和任何保障，这些用户需通过开源社区获取支持。Autodesk仅对Autodesk MapGuide Enterprise的用户提供支持和服务。</p>
<p style="text-indent: 2em"></p>
<p style="text-indent: 2em"><strong>结语</strong></p>
<p style="text-indent: 2em">通过本文的介绍，我们简要的浏览了Autodesk在地理空间信息领域的一系列开源技术和产品。使用来自Autodesk的开源技术，能够与其它开源软件或商业软件集成，建立起完善的基于Web的地理空间信息应用系统，从而为最广泛的用户共享地理信息，同时帮助企业降低成本，提高生产力。Autodesk将与OSGeo协作，不断的为地理空间信息的开源事业做出贡献。</p>
<p style="text-indent: 2em"><img src="http://media.ccidnet.com/media/swm/img/253/04501t01.jpg"  alt="" /></p>
<p style="text-indent: 2em">图1 <strong style="background-color: #ffff66; color: black">FDO</strong>数据访问技术</p>
<p style="text-indent: 2em"><img src="http://media.ccidnet.com/media/swm/img/253/04501t02.jpg"  alt="" /></p>
<p style="text-indent: 2em">图2 MapGuide Open Source 站点架构</p><img src ="http://www.blogjava.net/gdws/aggbug/365727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-12-07 11:00 <a href="http://www.blogjava.net/gdws/archive/2011/12/07/365727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE常用数值函数、转换函数、字符串函数介绍</title><link>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Fri, 25 Nov 2011 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/364869.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/26/364869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/364869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/364869.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ORACLE常用&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/11/26/364869.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/364869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-26 00:33 <a href="http://www.blogjava.net/gdws/archive/2011/11/26/364869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java编程思想之静态技术</title><link>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Fri, 25 Nov 2011 16:21:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/364868.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/26/364868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/364868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/364868.html</trackback:ping><description><![CDATA[静态技术包括静态数据、静态方法、静态初始化程序块等。

　　静态数据是属于某个类的数据成员，而非属于某个具体的对象。也就是说这个类创造出来的对象，都共用同一个数据。

　　view plainprint？

　　class A { static int x；……

　　}

　　静态方法也是属于整个类的，而且静态方法中不能调用非静态数据或方法。

　　view plainprint？

　　class B { public static void Set（int x） {……

　　}

　　用静态数据和静态方法的特性，我们可以专门构造工具类或者验证类。

　　静态初始化程序块，会在类的任何一个静态方法被调用或者任何一个构造函数被执行时被执行。

　　view plainprint？

　　class C {……

　　static { Integer in[4] = new Integer（）；for （int i = 0； i &lt; in.length； ++i） {……

　　}
<img src ="http://www.blogjava.net/gdws/aggbug/364868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-26 00:21 <a href="http://www.blogjava.net/gdws/archive/2011/11/26/364868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 7的新特性</title><link>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 08 Nov 2011 01:23:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/363140.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/11/08/363140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/363140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/363140.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: java 7的新特性&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/11/08/363140.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/363140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-11-08 09:23 <a href="http://www.blogjava.net/gdws/archive/2011/11/08/363140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse调试Bug的七种常用技巧 </title><link>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 23 Aug 2011 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/357138.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/08/23/357138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/357138.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/357138.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse调试Bug的七种常用技巧 &nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/08/23/357138.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/357138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-08-23 18:32 <a href="http://www.blogjava.net/gdws/archive/2011/08/23/357138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql-frontv5.1 key 注册 </title><link>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 22 Jun 2011 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352811.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/22/352811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352811.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: mysql-frontv5.1 key 注册 <br>&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/22/352811.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-22 15:48 <a href="http://www.blogjava.net/gdws/archive/2011/06/22/352811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss start winthin 50seconds </title><link>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 18 Jun 2011 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352574.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/18/352574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352574.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352574.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jboss start winthin 50seconds &nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/18/352574.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-18 13:21 <a href="http://www.blogjava.net/gdws/archive/2011/06/18/352574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss Port 8080 already in use.</title><link>http://www.blogjava.net/gdws/archive/2011/06/18/352573.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 18 Jun 2011 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/18/352573.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352573.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/18/352573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352573.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352573.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jboss Port 8080 already in use.&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/18/352573.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-18 13:15 <a href="http://www.blogjava.net/gdws/archive/2011/06/18/352573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jboss Port 8083 already in use.</title><link>http://www.blogjava.net/gdws/archive/2011/06/18/352572.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 18 Jun 2011 05:13:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/06/18/352572.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/352572.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/06/18/352572.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/352572.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/352572.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jboss Port 8083 already in use.&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/06/18/352572.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/352572.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-06-18 13:13 <a href="http://www.blogjava.net/gdws/archive/2011/06/18/352572.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapGuide Open Source 2.1 的安装</title><link>http://www.blogjava.net/gdws/archive/2011/04/09/347933.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sat, 09 Apr 2011 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/04/09/347933.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/347933.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/04/09/347933.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/347933.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/347933.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: -MapGuide Open Source 2.1 的安装&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/04/09/347933.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/347933.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-04-09 11:51 <a href="http://www.blogjava.net/gdws/archive/2011/04/09/347933.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查询sqlserver 出现Object has been closed问题？</title><link>http://www.blogjava.net/gdws/archive/2011/04/07/347777.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 07 Apr 2011 04:18:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2011/04/07/347777.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/347777.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2011/04/07/347777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/347777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/347777.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: SQLServer 2000 Driver for JDBC Object has been closed&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2011/04/07/347777.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/347777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2011-04-07 12:18 <a href="http://www.blogjava.net/gdws/archive/2011/04/07/347777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openlayers事件</title><link>http://www.blogjava.net/gdws/archive/2010/11/17/338328.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 17 Nov 2010 15:57:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/11/17/338328.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/338328.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/11/17/338328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/338328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/338328.html</trackback:ping><description><![CDATA[关于openlayers的事件网上有很多的分析。
<p><br />如何使用:<br />var map;<br />// define custom map event listeners<br />                function mapEvent(event) {<br />                    log(event.type);<br />                }<br />                function mapBaseLayerChanged(event) {<br />                    log(event.type + " " + event.layer.name);<br />                }<br />                function mapLayerChanged(event) {<br />                    log(event.type + " " + event.layer.name + " " + event.property);<br />                }<br />                map = new OpenLayers.Map('map', {<br />                    eventListeners: {<br />                        "moveend": mapEvent,<br />                        "zoomend": mapEvent,<br />                        "changelayer": mapLayerChanged,<br />                        "changebaselayer": mapBaseLayerChanged<br />                    }<br />                });<br />                即，初始化的时候传入map的构造函数一个object，这个object中有个属性:<br />                eventListeners【其实是个哈希表】<br />看来我们要看map类的构造函数了。<br />---------------------------------------------------------------------------<br />---------------------------------------------------------------------------<br />进入map类，看构造函数<br />    /**<br />     * Constructor: OpenLayers.Map<br />     * Constructor for a new OpenLayers.Map instance.<br />     *<br />     * Parameters:<br />     * div - {String} Id of an element in your page that will contain the map.<br />     * options - {Object} Optional object with properties to tag onto the map.<br />     *<br />     * Examples:<br />     * (code)<br />     * // create a map with default options in an element with the id "map1"<br />     * var map = new OpenLayers.Map("map1");<br />     *<br />     * // create a map with non-default options in an element with id "map2"<br />     * var options = {<br />     *     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),<br />     *     maxResolution: 156543,<br />     *     units: 'm',<br />     *     projection: "EPSG:41001"<br />     * };<br />     * var map = new OpenLayers.Map("map2", options);<br />     * (end)<br />     */    <br />    initialize: function (div, options)<br />    构造函数中进行初始化<br />    首先有一句:<br />            // now override default options <br />        OpenLayers.Util.extend(this, options);<br />        Util.extend函数的作用可以理解为:是把第二个参数的属性方法都传给第一个参数<br />        现在我们看刚才传入的带有eventListeners属性的object<br />        我们传入的object给了options，则object中的eventListeners就传给了this.eventListeners<br />        就是map类中的eventListeners属性<br />    来看这个属性的定义:<br />       /**<br />     * APIProperty: eventListeners<br />     * {Object} If set as an option at construction, the eventListeners<br />     *     object will be registered with &lt;OpenLayers.Events.on&gt;.  Object<br />     *     structure must be a listeners object as shown in the example for<br />     *     the events.on method.<br />     */<br />    eventListeners: null,<br />注释中说这个属性中的东西将通过OpenLayers.Events.on注册上,等会再说<br />同时指出这个对象必须是个“listeners object”的结构，其实就是我们前面传入的参数的eventListeners的结构<br />！！这里要注意了，listeners object是整个事件机制中的核心，所有的事件都是注册到他里面，然后触发的时候也是查找这个listeners object，找到里面注册的函数然后执行<br />goon..</p><p>构造函数中下面开始在map中初始化自己的events属性:<br />this.events = new OpenLayers.Events(this, <br />                                            this.div, <br />                                            this.EVENT_TYPES, <br />                                            this.fallThrough, <br />                                            {includeXY: true});<br />再往下就注册了:<br />if(this.eventListeners instanceof Object) {<br />            this.events.on(this.eventListeners);<br />        }<br />通过map自己的Events属性(其实也是个object,就是events类的实例)中的on这个函数注册上，<br />我们要进入OpenLayers.Events类<br />---------------------------------------------------------------------------<br />---------------------------------------------------------------------------<br />看这个on方法<br />   /**<br />     * Method: on<br />     * Convenience method for registering listeners with a common scope.<br />     *<br />     * Example use:<br />     * (code)<br />     * events.on({<br />     *     "loadstart": loadStartListener,<br />     *     "loadend": loadEndListener,<br />     *     scope: object<br />     * });<br />     * (end)<br />     */<br />    on: function(object) {<br />        for(var type in object) {<br />            if(type != "scope") {<br />                this.register(type, object.scope, object[type]);<br />            }<br />        }<br />    },<br />on这个函数参数还是第一步中我们传入的eventListeners，就是那个哈希表<br />遍历，这个“scope”键值是事件的“产生源”对象，就是这个键值对应的对象触发我们注册的事件<br />register(type, object.scope, object[type])<br />type就是事件名称<br />object[type]就是处理事件的函数名<br />可以看一下第一步中传入的参数:<br />eventListeners: {<br />                        "moveend": mapEvent,<br />                        "zoomend": mapEvent,<br />                        "changelayer": mapLayerChanged,<br />                        "changebaselayer": mapBaseLayerChanged<br />                    }<br />再进入events类的另一个函数:this.register(type, object.scope, object[type])<br />   /**<br />     * APIMethod: register<br />     * Register an event on the events object.<br />     *<br />     * When the event is triggered, the 'func' function will be called, in the<br />     * context of 'obj'. Imagine we were to register an event, specifying an <br />     * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the <br />     * context in the callback function will be our Bounds object. This means<br />     * that within our callback function, we can access the properties and <br />     * methods of the Bounds object through the "this" variable. So our <br />     * callback could execute something like: <br />     * :    leftStr = "Left: " + this.left;<br />     *   <br />     *                   or<br />     *  <br />     * :    centerStr = "Center: " + this.getCenterLonLat();<br />     *<br />     * Parameters:<br />     * type - {String} Name of the event to register<br />     * obj - {Object} The object to bind the context to for the callback#.<br />     *                     If no object is specified, default is the Events's <br />     *                     'object' property.<br />     * func - {Function} The callback function. If no callback is <br />     *                        specified, this function does nothing.<br />     * <br />     * <br />     */<br />    register: function (type, obj, func) {</p><p>        if ( (func != null) &amp;&amp; <br />             (OpenLayers.Util.indexOf(this.eventTypes, type) != -1) ) {</p><p>            if (obj == null)  {<br />                obj = this.object;<br />            }<br />            var listeners = this.listeners[type];<br />            listeners.push( {obj: obj, func: func} );<br />        }<br />    },<br />到这里，我们能看到我们所说的核心，那个哈希表，把自己的值都赋给了events类的一个属性:listeners<br />  /** <br />     * Property: listeners <br />     * {Object} Hashtable of Array(Function): events listener functions  <br />     */<br />    listeners: null,</p><p>这个事件机制的核心哈希表，键名就是事件的名称,也就是参数中的type,键值是一个对象{obj: obj, func: func}<br />当然这个对象中还有对象。。。。</p><p>现在事件已经注册上了，还有一个问题，register函数中提到了this.eventTypes，this.object<br />所以我们再回来看下events类的构造函数。<br />map类中实例化events属性的情景:<br />this.events = new OpenLayers.Events(    this, //指的是map<br />                                            this.div, <br />                                            this.EVENT_TYPES, <br />                                            this.fallThrough, <br />                                            {includeXY: true});<br />我们可以和events类的构造函数对比一下参数，就会明白了  <br />   /**<br />     * Constructor: OpenLayers.Events<br />     * Construct an OpenLayers.Events object.<br />     *<br />     * Parameters:<br />     * object - {Object} The js object to which this Events object  is being<br />     * added element - {DOMElement} A dom element to respond to browser events<br />     * eventTypes - {Array(String)} Array of custom application events <br />     * fallThrough - {Boolean} Allow events to fall through after these have<br />     *                         been handled?<br />     * options - {Object} Options for the events object.<br />     */<br />    initialize: function (<br />                   object,<br />                   element,<br />                   eventTypes, <br />                   fallThrough, <br />                   options) <br />      {<br />        OpenLayers.Util.extend(this, options);<br />        this.object     = object;<br />        this.element    = element;<br />        this.fallThrough = fallThrough;<br />        this.listeners  = {};</p><p>        // keep a bound copy of handleBrowserEvent() so that we can<br />        // pass the same function to both Event.observe() and .stopObserving()<br />        this.eventHandler = OpenLayers.Function.bindAsEventListener(<br />            this.handleBrowserEvent, this<br />        );</p><p>        // if eventTypes is specified, create a listeners list for each <br />        // custom application event.<br />        this.eventTypes = [];<br />        if (eventTypes != null) {<br />            for (var i=0, len=eventTypes.length; i&lt;len; i++) {<br />                this.addEventType(eventTypes[i]);<br />            }<br />        }<br />        <br />        // if a dom element is specified, add a listeners list <br />        // for browser events on the element and register them<br />        if (this.element != null) {<br />            this.attachToElement(element);<br />        }<br />    },<br /> 上面events的初始化是发生在map的初始化中，this.events.on(this.eventListeners);之前的，所以上面提到的register函数中的this.eventTypes，this.object 就明确意思了：<br /> this.object(this是指的events类)就是map,也就是说map是我们第一步传入参数中的注册事件的“发生源”，（比如button是onclik的“发生源”，“发生源”是本人自定义的。。不知道是否有合适的称呼，术语应该就是srcElement）<br />this.eventTypes(this是指的events类)就是map类中定义的一个常量:this.EVENT_TYPES(this是指的map类)<br />查到map类中的这个常量 EVENT_TYPES: [ <br />        "preaddlayer", "addlayer", "removelayer", "changelayer", "movestart",<br />        "move", "moveend", "zoomend", "popupopen", "popupclose",<br />        "addmarker", "removemarker", "clearmarkers", "mouseover",<br />        "mouseout", "mousemove", "dragstart", "drag", "dragend",<br />        "changebaselayer"],<br />所以我们在初始化map的时候传入的参数中，注册的事件都是来自于这个常量中的<br /></p><img src ="http://www.blogjava.net/gdws/aggbug/338328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-11-17 23:57 <a href="http://www.blogjava.net/gdws/archive/2010/11/17/338328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapGuide的内置Widget </title><link>http://www.blogjava.net/gdws/archive/2010/11/12/337862.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 11 Nov 2010 16:03:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/11/12/337862.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/337862.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/11/12/337862.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/337862.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/337862.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MapGuide的内置Widget &nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/11/12/337862.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/337862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-11-12 00:03 <a href="http://www.blogjava.net/gdws/archive/2010/11/12/337862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于OpenLayers的地图小工具</title><link>http://www.blogjava.net/gdws/archive/2010/11/12/337860.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Thu, 11 Nov 2010 16:02:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/11/12/337860.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/337860.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/11/12/337860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/337860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/337860.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">提到小工具，就不得不提到</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">。</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">（主页是</span>
				<span lang="EN-US">http://www.openlayers.org</span>
				<span style="FONT-FAMILY: 宋体">）是由</span>
				<span lang="EN-US">MetaCarta</span>
				<span style="FONT-FAMILY: 宋体">最初发起的，用于在网页界面上展示地图的一套</span>
				<span lang="EN-US">Javascript</span>
				<span style="FONT-FAMILY: 宋体">脚本框架。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">的</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">框架最为核心的地图</span>
				<span lang="EN-US">Widget</span>
				<span style="FONT-FAMILY: 宋体">，就是采用了</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">框架。</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">框架对</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">进行包装，为其添加了更多的功能，从而使之能够更符合</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">框架并与其余</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">组件进行交互。<br /></span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">非常有趣的是，由于</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">所采用的术语跟</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">采用的并不是十分一致，甚至</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">不同部分采用的术语也不是十分一致，所以同一个名字在不同地方表达的意思却很可能并不相同。所以，在详细介绍</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">如何对</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">进行包装之前，有必要对两者之间的术语进行一下区分，以免当您阅读到相关材料时感到疑惑。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">认为，用户看到的由多个图层</span>
				<span lang="EN-US">(layer)</span>
				<span style="FONT-FAMILY: 宋体">组成的一张地图</span>
				<span lang="EN-US">(map)</span>
				<span style="FONT-FAMILY: 宋体">。地图本身与加载的数据源格式无关，与数据源格式相关的是图层。因此，地图类只有一个（</span>
				<span lang="EN-US">OpenLayers.Map</span>
				<span style="FONT-FAMILY: 宋体">），而图层类却有很多，这些类都以</span>
				<span lang="EN-US">OpenLayers.Layer</span>
				<span style="FONT-FAMILY: 宋体">作为命名空间，如</span>
				<span lang="EN-US">OpenLayers.Layer.Google/Yahoo/MapGuide/WMS/Vector</span>
				<span style="FONT-FAMILY: 宋体">等等。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">这样的结构有一个问题，那就是所有的图层之间是平行的关系，这是很不利于图层管理的。我们假设有这样一张地图：该地图包含有十二个图层，有九个来自于不同数据源的图层和三个位于顶层的</span>
				<span lang="EN-US">Vector</span>
				<span style="FONT-FAMILY: 宋体">层。那么，我如果想用代码去处理所有</span>
				<span lang="EN-US">Vector</span>
				<span style="FONT-FAMILY: 宋体">的层，就必须遍历所有的层，依次比较是不是</span>
				<span lang="EN-US">Vector</span>
				<span style="FONT-FAMILY: 宋体">层，再对</span>
				<span lang="EN-US">Vector</span>
				<span style="FONT-FAMILY: 宋体">层进行处理。解决这个问题的方案很简单，那就是引入层级结构，允许用户把图层分组。比如上面的例子中，把三个</span>
				<span lang="EN-US">Vector</span>
				<span style="FONT-FAMILY: 宋体">分成一组，比如命名为“标记”组，届时只需要对标记组中的每一个层进行处理即可。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">这也正是</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">对于</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">众多改进中的一个。而问题也正是这里引入的：地图</span>
				<span lang="EN-US">Widget</span>
				<span style="FONT-FAMILY: 宋体">在给这种层级结构命名的时候，出人意料地采用了另外的命名方式：地图</span>
				<span lang="EN-US">Widget</span>
				<span style="FONT-FAMILY: 宋体">把图层组命名为“地图组”</span>
				<span lang="EN-US">(map group)</span>
				<span style="FONT-FAMILY: 宋体">，把组里面的图层命名为</span>
				<span lang="EN-US">(map)</span>
				<span style="FONT-FAMILY: 宋体">。下面代码是示例数据中</span>
				<span lang="EN-US">Library://Samples/Sheboygan/FlexibleLayouts/Slate.ApplicationDefinition</span>
				<span style="FONT-FAMILY: 宋体">布局文件对于地图定义的那一部分，用户可以在</span>
				<span lang="EN-US">MapGuide Studio</span>
				<span style="FONT-FAMILY: 宋体">中通过点击位于</span>
				<span lang="EN-US">Map</span>
				<span style="FONT-FAMILY: 宋体">面板上的</span>
				<span lang="EN-US">“Edit Map Group”</span>
				<span style="FONT-FAMILY: 宋体">按钮来查看这部分内容。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
		</p>
		<table class="MsoNormalTable" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #d9d9d9; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid" valign="top" width="568">
										<p class="MsoNormal">
												<span lang="EN-US">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">&lt;MapSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>  </span>&lt;MapGroupType id="Sheboygan"&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>    </span>&lt;Map&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>      </span>&lt;Type&gt;MapGuide&lt;/Type&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>      </span>&lt;SingleTile&gt;true&lt;/SingleTile&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>      </span>&lt;Extension&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>        </span>&lt;ResourceId&gt;Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition&lt;/ResourceId&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>        </span>&lt;SelectionAsOverlay&gt;true&lt;/SelectionAsOverlay&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>        </span>&lt;SelectionColor&gt;0x0000FFA0&lt;/SelectionColor&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>      </span>&lt;/Extension&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>    </span>&lt;/Map&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>    </span>&lt;Extension /&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">
														<span>  </span>&lt;/MapGroupType&gt;</span>
										</p>
										<p class="MsoNormal">
												<span lang="EN-US">&lt;/MapSet&gt;</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="a" style="MARGIN-TOP: 6pt">
				<span style="FONT-FAMILY: 宋体">布局文件中地图定义的部分代码</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">其实，</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">这样做是有原因的。这个问题源于不同产品之间定位的不同：</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">框架的目的是在同一张地图上面显示多个数据源。所以在</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">看来，一个来自</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">的地图仅仅是一个层而已。然而，在</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">内部，一张</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">地图内是包含多个</span>
				<span lang="EN-US">Layer</span>
				<span style="FONT-FAMILY: 宋体">，具体表现就是一个</span>
				<span lang="EN-US">MapDefinition</span>
				<span style="FONT-FAMILY: 宋体">里可以包含多个</span>
				<span lang="EN-US">LayerDefinition</span>
				<span style="FONT-FAMILY: 宋体">。所以，如果</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">把</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">叫做一个</span>
				<span lang="EN-US">Layer</span>
				<span style="FONT-FAMILY: 宋体">的话，又该如何称呼里面的</span>
				<span lang="EN-US">Layer</span>
				<span style="FONT-FAMILY: 宋体">呢？</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">鉴于这样的考虑，</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">才做了这种概念上的映射：</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">中的地图</span>
				<span lang="EN-US">Widget</span>
				<span style="FONT-FAMILY: 宋体">对应</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">里面的地图；</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">里面的地图组是一个逻辑概念，从而形成一种逻辑上的层级结构以便管理；</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">中的地图实际对应于</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">里面的图层。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">但事情到这里还没有结束，接下来的事情可能会让您有些意外：在编写地图</span>
				<span lang="EN-US">Widget</span>
				<span style="FONT-FAMILY: 宋体">实现代码时，为了能够便于与</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">中的类对应起来，</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">将地图（也就是</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">中的图层）称为</span>
				<span lang="EN-US">Layers</span>
				<span style="FONT-FAMILY: 宋体">（注意，不是</span>
				<span lang="EN-US">Layer</span>
				<span style="FONT-FAMILY: 宋体">），并要求每一个地图的代码都继承自</span>
				<span lang="EN-US">Fusion.Layers</span>
				<span style="FONT-FAMILY: 宋体">。比如，</span>
				<span lang="EN-US">MapGuide</span>
				<span style="FONT-FAMILY: 宋体">的</span>
				<span lang="EN-US">Layers</span>
				<span style="FONT-FAMILY: 宋体">的名称就叫做</span>
				<span lang="EN-US">Fusion.Layers.MapGuide</span>
				<span style="FONT-FAMILY: 宋体">。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">下表总结了</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">与</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">之间这种概念映射关系</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
		</p>
		<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 108.95pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">Fusion</span>
												<span style="FONT-FAMILY: 宋体">概念</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">Fusion</span>
												<span style="FONT-FAMILY: 宋体">代码命名</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">OpenLayers</span>
												<span style="FONT-FAMILY: 宋体">概念</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">OpenLayers</span>
												<span style="FONT-FAMILY: 宋体">代码命名</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 108.95pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">地图</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">Fusion.Layers</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">图层</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">OpenLayers.Layer</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 108.95pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">地图组</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">
												</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">无对应概念</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">
												</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 108.95pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">地图</span>
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">Widget</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">Fusion.Widget.Map</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span style="FONT-FAMILY: 宋体">地图</span>
										</p>
								</td>
								<td style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 109pt; PADDING-TOP: 0cm" valign="top" width="145">
										<p class="MsoNormal" style="TEXT-ALIGN: justify">
												<span lang="EN-US" style="FONT-FAMILY: 'Calibri','sans-serif'">OpenLayers.Map</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="a" style="MARGIN-TOP: 6pt">
				<span lang="EN-US"> Fusion</span>
				<span style="FONT-FAMILY: 宋体">与</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">之间的概念映射关系</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">在阅读</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">和</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">的源代码或学习他们的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体">时，一定要注意两者术语上的区别。</span>
		</p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<span style="FONT-FAMILY: 宋体">本节中，我们提到了</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">引入了地图组这一个概念。这只是</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">对于</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">众多改动中的一个。下面我们来看看到底</span>
				<span lang="EN-US">Fusion</span>
				<span style="FONT-FAMILY: 宋体">对</span>
				<span lang="EN-US">OpenLayers</span>
				<span style="FONT-FAMILY: 宋体">还做了哪些改动。</span>
				<br />
				<font color="#ff0000" size="5">Fusion 对于 OpenLayers 的改进 <br /></font>为了便于 Fusion 的其他组件能够与地图进行交互， Fusion 对于 OpenLayers 进行了较为全面的包装。一般来说，如果您不是开发 Fusion.Layers 的开发人员，除了使用一些 OpenLayers 的一些工具性的函数之外，您甚至都不需要知道 OpenLayers 的存在。但是，仅仅进行包装是不够的，由于 OpenLayers 与 Fusion 定位的不同， Fusion 必须对 OpenLayers 进行扩展才能适应更为复杂的模型。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">1.       Fusion 中添加了选择集的概念。 OpenLayers 在同一张地图里面显示多种不同数据源的方面确实做的很好，遗憾的是，它缺少选择集这一至关重要的概念。对于 OpenLayers 来说，选择集完全是可有可无的，因为它的目的在于将地图展示出来，而且，很多地图根本就没有选择集这样的 API ，比如 Google 地图等等。但对于 Fusion 则不同，我们很难想象没有选择集，用户该如何利用 MapGuide 进行管理。所以， Fusion 加入了选择集这个概念，并且要求实现 Layers 的地图（比如 MapGuide ）实现选择集功能。我们可以看到， Fusion.Widget.Map 中不但有诸如 get/set/clear/hasSelection 这样控制和读取选择集的函数，而且有 MAP_SELECTION_ON 和 MAP_SELECTION_OFF 这两个事件来通知监听者地图选择集的当前状况。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">2.       Fusion 开放了更多的事件。借助于 Fusion 自己独立实现的事件机制， Fusion 允许用户接收到更多种类的事件，比如 Session 是否已创建、地图当前忙碌与否、选择集状态变更、当前图层（这个是 Fusion 中的图层，不是 OpenLayers 的）变化等等。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">3.       Fusion 允许地图的实现类返回自身支持哪些比例尺，这就使得用户可以直观的知道自己当前缩放地图到什么程度。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">4.       允许用户随时设置当前地图的背景图片和地图上的光标形状。这对于直观地反应地图当前状态是是否有用的。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">5.       支持右键菜单。虽然在浏览器上实现右键菜单相对简单一些，但是通过使用地图 Widget 的 setContextMenu ，代码编写者就可以直接把已经准备好的 div 作为右键菜单，再也不需要直接与底层鼠标事件打交道了。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">
				<font color="#ff0000" size="5">地图的定义 <br /></font>前面在介绍 Fusion 与 OpenLayers 术语不同的时候，摘录了应用程序定义中对于地图部分的定义。通过解析这个定义， Fusion 了解了应该如何加载该地图。下面，我们就来看看这个定义中到底都定义了哪些东西。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">在 Fusion 中，一个地图组用一个 MapGroup 进行标签定义， MapGroup 里面的 Map 标签就是对于一个地图的定义了。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">1.       Type: 该标签标示了地图的类型。所有 MapGuide 地图该标签的值均为 MapGuide 。当 Fusion 读取到该地图的 Type 时，就会用对应的 “Fusion.Layers. 标签值 ” 来初始化该地图。比如 MapGuide 地图就会用 Fusion.Layer.MapGuide 来初始化。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">2.       SingleTile: 如果该项为真，则表示该项不采用分块服务。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">3.       Extension: 该于扩展 Map 标签，来为地图初始化提供更多的信息。各个 Fusion.Layers 的实现类可以自行决定其需要的内容，以及如何解释这些内容。对于 MapGuide 而言，有以下常见的扩展： </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">a)         ResourceId: MapDefinition 的资源 Id ，通过该 Id ， Fusion 可以知道加载哪一个地图定义。 </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">b)        SelectionAsOverLay: 如果该项是 true ，那么将会使用 GETDYNAMICOVERLAY 来获取地图，否则采用 GETMAPIMAGE 来获取地图。前者是新版本才支持的，可以把选择集和地图本身绘制成两张地图。如果您使用的 MapGuide 版本比较旧，您可以把该项设置成为 false </p>
		<p class="MsoNormal" style="TEXT-INDENT: 21.2pt; TEXT-ALIGN: justify">c)         SelectionColor: 该项表示用什么颜色来显示选中的要素。 </p>
<img src ="http://www.blogjava.net/gdws/aggbug/337860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-11-12 00:02 <a href="http://www.blogjava.net/gdws/archive/2010/11/12/337860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决QQ和360软件冲突的办法</title><link>http://www.blogjava.net/gdws/archive/2010/11/04/337185.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 03 Nov 2010 17:18:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/11/04/337185.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/337185.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/11/04/337185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/337185.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/337185.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 解决QQ和360软件冲突的办法&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/11/04/337185.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/337185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-11-04 01:18 <a href="http://www.blogjava.net/gdws/archive/2010/11/04/337185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapGuide地图缓存TileCache组织方式讲解</title><link>http://www.blogjava.net/gdws/archive/2010/09/21/332619.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Tue, 21 Sep 2010 08:58:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/09/21/332619.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/332619.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/09/21/332619.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/332619.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/332619.html</trackback:ping><description><![CDATA[
		<p>此TileCache非彼Py TileCache，而是MapGuide OS/E自带地图缓存”名称”。</p>
		<p>现在成熟的地图平台均不同程度上支持瓦片生成方式，而且每个WebGIS产品均有各自不同的瓦片(Tile)组织方式。MapGuide OS/E 的和Bing Map、Google Map、TMS的组织方式有很大不同，如果可以知道存储方式就可以自己实现MapGuide Provider，部署地图时则不需要安装MapGuide OS/E。现分析下以供有缘人使用。</p>
		<p>       public override Uri GetUri(int x, int y, int zoomLevel)<br />        {//适用于MS Silverlight mapControl，xy为行列号，zoomLevel为当前地图比例级别<br />            string tileRowGroup = “”;<br />            string tileColGroup = “”;<br />            if (x &gt;= 0 &amp;&amp; y &gt;= 0 )<br />            {<br />                tileRowGroup += (Math.Floor(x/tileRowsPerFolder) * tileRowsPerFolder).ToString();//tileRowsPerFolder=30<br />                tileColGroup += (Math.Floor(y / tileColumnsPerFolder) * tileColumnsPerFolder).ToString();<br />                string tilePath = “/S” + Math.Floor(zoomLevel)<br />                + “/” + basemaplayergroupname<br />                + “/R” + tileRowGroup<br />                + “/C” + tileColGroup<br />                + “/” + (x % tileRowsPerFolder)<br />                + “_” + (y % tileColumnsPerFolder)<br />                +”.” + this.format;//png<br />                return new Uri(this.url + tilePath);<br />            }<br />            return null;<br />        }</p>
<img src ="http://www.blogjava.net/gdws/aggbug/332619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-09-21 16:58 <a href="http://www.blogjava.net/gdws/archive/2010/09/21/332619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA把各种数据结构转换为JSON格式</title><link>http://www.blogjava.net/gdws/archive/2010/09/15/332071.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 15 Sep 2010 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/09/15/332071.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/332071.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/09/15/332071.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/332071.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/332071.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 各种数据结构转换为JSON格式&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/09/15/332071.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/332071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-09-15 15:10 <a href="http://www.blogjava.net/gdws/archive/2010/09/15/332071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java通用权限控制算法 </title><link>http://www.blogjava.net/gdws/archive/2010/09/15/332069.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 15 Sep 2010 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/09/15/332069.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/332069.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/09/15/332069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/332069.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/332069.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 权限控制算法&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/09/15/332069.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/332069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-09-15 15:05 <a href="http://www.blogjava.net/gdws/archive/2010/09/15/332069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse  注册码</title><link>http://www.blogjava.net/gdws/archive/2010/08/22/329606.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 22 Aug 2010 15:48:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/22/329606.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329606.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/22/329606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329606.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MyEclipse  系列注册码&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/22/329606.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-22 23:48 <a href="http://www.blogjava.net/gdws/archive/2010/08/22/329606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse注册码及官方下载地址</title><link>http://www.blogjava.net/gdws/archive/2010/08/22/329605.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Sun, 22 Aug 2010 15:44:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/22/329605.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329605.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/22/329605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329605.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329605.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MyEclipse注册码及官方下载地址&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/22/329605.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-22 23:44 <a href="http://www.blogjava.net/gdws/archive/2010/08/22/329605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse Mylyn配置</title><link>http://www.blogjava.net/gdws/archive/2010/08/18/329238.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 18 Aug 2010 08:35:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/18/329238.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329238.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/18/329238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329238.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329238.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: eclipse Mylyn配置&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/18/329238.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-18 16:35 <a href="http://www.blogjava.net/gdws/archive/2010/08/18/329238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse7.5下整合Flash builder 4 (附注册码)</title><link>http://www.blogjava.net/gdws/archive/2010/08/18/329189.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 18 Aug 2010 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/18/329189.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329189.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/18/329189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329189.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329189.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MyEclipse7.5下整合Flash builder 4 (附注册码)&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/18/329189.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-18 10:47 <a href="http://www.blogjava.net/gdws/archive/2010/08/18/329189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse和Eclipse开发环境的搭建</title><link>http://www.blogjava.net/gdws/archive/2010/08/18/329187.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 18 Aug 2010 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/18/329187.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329187.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/18/329187.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329187.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329187.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MyEclipse和Eclipse开发环境的搭建&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/18/329187.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329187.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-18 10:46 <a href="http://www.blogjava.net/gdws/archive/2010/08/18/329187.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA的XML</title><link>http://www.blogjava.net/gdws/archive/2010/08/18/329181.html</link><dc:creator>帅子</dc:creator><author>帅子</author><pubDate>Wed, 18 Aug 2010 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/gdws/archive/2010/08/18/329181.html</guid><wfw:comment>http://www.blogjava.net/gdws/comments/329181.html</wfw:comment><comments>http://www.blogjava.net/gdws/archive/2010/08/18/329181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gdws/comments/commentRss/329181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gdws/services/trackbacks/329181.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA的XML读写&nbsp;&nbsp;<a href='http://www.blogjava.net/gdws/archive/2010/08/18/329181.html'>阅读全文</a><img src ="http://www.blogjava.net/gdws/aggbug/329181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gdws/" target="_blank">帅子</a> 2010-08-18 10:15 <a href="http://www.blogjava.net/gdws/archive/2010/08/18/329181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>