【发布时间】:2010-09-25 07:22:31
【问题描述】:
我正在开发一个涉及一些 gis 内容的应用程序。将有一些 .shp 文件被读取并绘制到 opengl 屏幕上。当前的opengl屏幕正在使用glOrtho()设置的正交投影,并且已经使用简单文本文件中的坐标显示地图。..
现在要从 shapefile 读取要绘制的地图。
我有以下疑惑:
如何使用 .shp 文件的 WGS84 投影(从 shapefile 的 .prj 文件读取,WKT 格式)到我现有的 glOrtho 投影中。是否需要进行任何转换?它与 glOrtho() 设置的有什么不同?基本上如何使用这些信息?
我的应用程序需要设置为我可以知道地图上某个点的确切纬度/经度。例如。如果我在 X 城市上徘徊,则可以获取其正确的纬度/经度。我知道这可以通过使用像 GDAL/OGR 这样的开源工具/api 来完成,但我搞砸了,因为这些 api 的文档没有进入我的头。 我试图找到一些示例 c++ progs 但找不到。
我已经编写了自己的逻辑来从包含点/折线/多边形(使用 C-shapelib)的 shapefile 中读取坐标并绘制在我的 opengl 屏幕上。我在 doc 中找到了一个 OGR 示例代码来阅读一个 POINTS shapefile,但没有 POLYGON shapefile。问题是这个应用程序必须非常动态,以便在加载 shapefile 时,它应该根据正在读取的 .shp 文件的投影正确设置 opengl 屏幕的投影。例如 WGS84、LCC、EVEREST MODIFIED...等。如何通过 OGR api 实现这一点?
请就这个问题提供您的意见。我真的很想完成这项工作,但我没有得到正确的开始..
【问题讨论】: