欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏ArcGIS应用与开发ArcGIS桌面 → 正文
面状符号图片填充和渐进色填充的实现
08-01-11 00:00:00 作者:gisempire100 出处:GIS帝国论坛
地图符号在地图中作用是不言而喻的,地图符号的开发也是GIS平台的重要一部分,也是比较难的。本文对写出了面状符号的图片填充和渐变色填充的实现方法。也许我的思路不是最好的。
      熟悉ArcMap的都知道它有着丰富的地图符号库,其地图符号制作器采用目前最先进的符号制作与组合思想,功能很强大。许多GIS软件都以此为模板开发自己的符号库软件。当然我们也是,毕竟站在巨人肩膀上看得更远。
      面状符号的图片填充就是利用预先制作好的图片,然后按照顺序排列填充shape,该方法具有逼真等特点,是一种很重要的渲染方式。在Java语言里有一个类TexturePaint,该类可以使用图片对shape进行渲染的。该类具体应用请参看JDK文档。在ArcMap里,可以整体调整图片的角度来适应不同的需要,如何处理多个图片的整体角度是一个比较难的问题。
      开始,我采用对图形环境进行AffineTransform的适当变换,实现了整体图片的旋转,但是由于旋转前已经根据shape的外包矩形的大小生成了图片,经过旋转后的图片就有可能不能完全填充shape的可能,就会出现黑屏的现象。而且从理论上讲,该方法会很慢,该方法走不通。
      接下来,我采用旋转图片的方法,这样的后果是shape里的各个图片都围绕自己的中心改变,就得不到整体旋转的效果,该方法也走不通。
      最后我仔细分析ArcMap的绘制效果,在加上长时间的思考,最后想到了何不根据图片再生成一个图片,这个图片要能完全包含shape,这样就要得到shape的外包矩形,然后以该矩形的对角线为边长,这样新图片的大小就是 对角线x对角线 的一个正方形,只要把该正方形的中心移到shape的外包矩形的中心,这样不管图片怎样旋转,始终都会包含shape,所以达到了渲染的效果。
      总之,该方法主要思想是利用图片生成一个完全包含shape的图片,然后旋转图片,这样就达到了ArcMap的渲染效果,虽然很简单的思想,但是我确想了两天,(也许我太笨);
     对于渐进色的填充,基本思想和图片填充差不多,关键是用颜色(在ArcMap里是根据Inteval的多少,来对颜色段进行划分的)对这个足够大的矩形(也就是上面提到的正方形)进行填充,然后生成一个图片,接下来就和图片填充一样了。

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    无相关新闻

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号