我有兴趣将一个简单的导航应用程序编写为宠物项目.在搜索免费地图数据后,我已经确定了美国人口普查局TIGER 2007 Line/Shapefile地图数据.数据被分成各个县的zip文件,我已经为我的区域下载了一个县的地图数据.
将这个地图数据读入可用格式的最佳方法是什么?
我应该怎么做:
在读完Shapefile数据后,渲染地图的最佳方法是什么?
理想情况下,我希望能够读取县地图数据shapefile并将所有多边形线渲染到屏幕上并允许旋转和缩放.
我应该怎么做:
防爆.作为显示地图呈现的TIGER数据:

任何有经验和洞察我最好的方式阅读这些文件的人,我应该如何在我的程序中表示它们(数据库,内存数据结构),以及我应该如何渲染(使用旋转/缩放)地图数据在屏幕上将不胜感激.
编辑:澄清一下,我不想使用任何谷歌或雅虎地图API.同样,我不想使用OpenStreetMap.我正在寻找一种比使用那些apis /程序更划刮的方法.这将是一个桌面应用程序.
首先介绍一下:
去年我写了这个http://dragan.yourtree.org/code/canvas-3d-graph/
现在,我想完全重写它,因为旧版本有一些限制,例如:有时会发生条形图不可见,因为它们是一个接一个地绘制的.
在这个旧版本中,没有真正的3D,只是2D线的bunck,它模仿3D.
现在,我想要的是进入全面的3D场景,我想将所有物体保存在内存中,并添加某种3D导航按钮,使用户可以在所有3轴上旋转整个场景,并缩放相机和出.
我已经决定将http://sylvester.jcoglan.com/用于矢量/矩阵的东西,但我仍然无法找到3D的好教程.互联网上有大量的文本,大多数是90年代的文本,不完整或写得非常糟糕.
所以,我的问题是:什么是最好的在线资源/教程,使我能够从头开始编写自己的JS 3D引擎.
它应涵盖所有相关主题:
等等.(我对前两个相当熟悉)
感谢您的时间.
在过去,我已经将RGB图像(从物理模拟生成)保存为8位/通道PPM或PNG或JPEG.
现在我想保留模拟输出的动态范围,这意味着保存浮点图像,然后将转换处理为8位/通道作为后处理步骤(因此我可以将转换调整为8位而不运行冗长的模拟再次).
是否出现了"标准"浮点图像格式?
良好的免费支持库/查看器/操作工具,最好在Debian中提供,将是一个奖励.
我正在使用一个库,该库将其部分状态呈现为SVG文档.
我想在Windows窗体或WPF环境中呈现它.目前有办法做到这一点吗?
如果没有,我可以修改库以使用更一般的渲染策略,然后添加XML适配器以恢复原始功能,但这不是我的首选策略.
我正在使用Impressionist来记录页面展示次数.数据库写入只需要大约50ms,但我真的更喜欢在页面呈现并发送到客户端之后执行此操作.
我已经研究过通过Spawn分叉,但它建立了一个新的数据库连接,这对于这么小的工作来说似乎有些过分.延迟工作和其他后台处理库似乎是一个重大的过度杀伤.写入数据库只是为了推迟写入数据库......不是胜利.
我希望我可以:
def show
render
impressionist(@article)
end
Run Code Online (Sandbox Code Playgroud)
...并且让印象派使用相同的数据库连接和所有相同的请求数据来执行其操作,就在操作已经返回到客户端之后.但当然,这不是渲染方法的工作原理.
有解决方案吗 在Heroku Cedar上运行Rails 3.1和Ruby 1.9.2.
我正在使用swipe.js(http://swipejs.com)为平板电脑和台式机构建HTML5杂志.
一切似乎工作正常,在一个HTML页面中,我已经设置了彼此全屏列表元素.整个杂志都是在一个静态的html文件中构建的.我可以通过在平板电脑上滑动以及使用桌面版本的按钮来浏览页面(请参阅swipe.js主页上的示例,然后使用全屏幻灯片).
页面彼此相邻放置,并具有屏幕的尺寸.
[ |0||1||2| .. |i-1||i||i+1| .. |n| ]
Run Code Online (Sandbox Code Playgroud)
使用translate3d()css函数,在css3的帮助下完成了swipe.js转换.在这种情况下,使用硬件渲染.
在台式机(Chrome,Safari,FF),iPad1和(甚至更好的)iPad2上,这具有我想要的效果; 平滑过渡.完善!但是,在iPad3上,页面第一次进入(通过转换)时似乎呈现"慢".即使没有设置背景图像(只是颜色),转换页面的"渲染"也会被认为有点"慢"; 该页面由"闪烁"块构建.
假设:我的假设是(在阅读主题之后),这是因为浏览器只呈现屏幕内的元素,并且只会暂时刷新刷过的页面,然后清理缓存以控制内存管理.
我的问题:有没有办法控制屏幕外渲染和缓存,这样我就可以强制(预)渲染页面元素i-1,i + 1(并刷新所有其他页面元素的缓存),以加快我的过渡渲染?
注意:在StackOverflow的几个主题中,提到了css3过渡的"闪烁".我已经实现了建议的CSS技巧,但不会解决我的问题.
-webkit-backface-visibility: hidden;
-webkit-transform:translate3d(0,0,0);
Run Code Online (Sandbox Code Playgroud) 我们在HLSL中有一个像素着色器,它在一些地方用于稍微不同的东西,因此有几个条件块意味着在某些情况下省略了复杂的功能.同样,这意味着我们将纹理作为采样器参数传递,而这些参数可能并不总是被使用.
我不知道这两件事增加了多少性能,但特别是因为我们在集成图形芯片上支持SM2.0,效率低下是个问题.那么,传递纹理而不使用它意味着任何额外的开销吗?并且使用if简单的行为来添加一些指令,还是会因为停顿等而对其进行大幅度的影响,就像进行CPU优化一样?
我在OpenGL中遇到了Z-Fighting的主要问题,我花了很长时间才找到解决这个问题的方法.我发现的一些,我理解并不喜欢:
那些我不明白的:
我已经在我的程序中实现了第二个,只需将它放入球的顶点着色器(它与地面z-fight):
float C = 1.0;
float far = 2000.0;
gl_Position = u_projView * a_position;
gl_Position.z = 2.0*log(gl_Position.w*C + 1.0)/log(far*C + 1.0) - 1.0;
gl_Position.z *= gl_Position.w;
Run Code Online (Sandbox Code Playgroud)
它工作了!
谢谢!
我的网站上有一些GIF文件在除FireFox之外的每个浏览器上都呈现得非常流畅.以下屏幕描述了我的意思:
例1
这里基本上是Safari/Opera/Chrome渲染GIF ..非常流畅.
这是FF上的渲染..非常不稳定和半扭曲的线条.
例2
在Opera/Safari/Chrome上渲染,再次非常流畅.
在FF渲染,再次非常波涛汹涌.
这是一个必须使用设置调整的浏览器缺陷吗?到目前为止,我通过添加一些浏览器嗅探逻辑(我不想这样做)并放置在GIF的较小版本中来否定这一点.有什么建议?
UPDATE
这是实际的GIF ..在FF中打开这个问题,请提供反馈