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