我正在应用程序,涉及一些gis的东西。会有一些。shp文件阅读和绘制上的照片屏幕上。当前的照片屏幕是使用正投影定从 glOrtho() 而是已经显示的地图上使用的坐标从一个简单的文本文件..

现在地图的绘制是可以从中读取的一个要素.

我有以下疑问:

  1. 如何使用WGS84突。shp文件(以从中读取。常财务?文件的要素,WKT格式)进入我的现有glOrtho突..是否有任何转变,需要做?它是如何不同是什么glOrtho()设置了?基本上如何使用这一信息?

  2. 我应用程序需要设置这样一种方式,我可以知道确切的纬度/经度的地图上的一个点.为。如果我徘徊在X的城市,它正确的纬度/经度可能被牵强。我知道这可以通过使用开放源码工具/api像GDAL/OGR但我搞砸了作为本文件的这些api没有得到进入我的头。我试图找到一些样品c++方案,但无法找到一个。

  3. 我已经写我自己的逻辑读的坐标从一个要素包含点/折线的/多边(使用C-shapelib)和绘了我的照片屏幕上。我找到了一种OGR样的代码,在医生读一点要素,但没有为面要素.而问题是,这个程序具有可以动态的,应载的要素,它应该正确地建立投射的照片屏幕上取决于投影。shp文件正在读..如WGS84,LCC、珠穆朗玛峰的修改等等。如何实现这种OGR api?

请给您的投入,在这个问题。。我真的很热衷于使这项工作但是我没有得到正确的开始..

有帮助吗?

解决方案

  1. 要素呈现的是相当直接的在照片.你可能需要"shapelib",一个免费的要素分析图书馆在C(Google)。使用GL_POINTS点要素, GL_LINES线要素和GL_LINE_LOOP对面要素.设置你的边界框coords的邻位。

  2. 你读什么。常财务?文件的投影的信息。WGS84给你纬度/经度coords(球形)。但你的显示器系统是2D(矩形)。所以,你需要转换3D球coords2D矩coords(这是意义的突起)。突类型很多,这取决于该地区的利益在地球上(记得突扭曲了区域/形状尺寸的特点)。突类型范围内从了多圆锥,修改珠穆朗玛峰,NAD,UTM等,

  3. 如果你只是需要WGS84,然后阅读边框coords你的.sh文件,并将其分配给glOrtho.如果你有任何预测(如:UTM),然后你把你的边界框coords入投coords然后指定新的预计coords到glOrtho.换纬度/经度到任何的投影,你可能需要投影像图书馆"Projlib"或"GeotransEngine"等。

为进一步澄清,你可以联系我的上dgplinux@y h o.c o m

其他提示

请阅读 OGR API教程 在这里你可以学会如何读矢量的数据来源,如要素.下一个,检查 OGR突的教程 在这里你可以学到有关如何使用信息有关的投射和空间参照系统从中读取的OGR源。

GDAL/OGR有你需要的一切负荷的一个向量文件,然后转换成任何坐标。我理解你的失望与GDAL作为文档中不是最大的。如果你想要一个良好的介绍使用API,看看gdalinfo.c ogrinfo.cpp 在GDAL颠复树。来源可以看到 https://svn.osgeo.org/gdal/trunk/gdal.

如果没有帮助,我有两个基本的例子,我用它来分析矢量的信息和做坐标变换。他们是真正的坏事,但他们可能有助于得到这一点。

矢量加载

坐标变换

最后,如果你不熟悉的与地理信息系统格式,我会考虑读ArcGIS介绍 在这里,Guide Books/Map Projections.我可以竞争与专家尽管没有制图学培训,因为这些指南。另一个良好来源,是维基百科。

有疑问时,只选择一个UTM格,你想坚持有和使用UTM作为你的坐标系统。它利用X(东),Y(北),Z(高度)。唯一的关键是选择一个单一的UTM格和确保所有坐标的使用,作为一个参考。UTM易于测试代码用作有了很多指导在线。你也可以找到代码转换使用OGR/GDAL或其他资源。其他预计的坐标系统都是值得的,并可能是更好的,但是我看到的开始。

最后,如果一切都失败了,看看牙GeoTrans.这是一个伟大的测试工具。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top