先用Qt实现了一个能够实现读取shape文件,并实现平移、放大、缩小的小程序。
读取Shapefile使用的gdal的库,而绘制部分,使用了agg-2.4。(尽管Qt的绘制本身也跨平台,主要是走通不同绘制引擎的实现)
有几个需要注意的:
1、agg绘制在buf中后,在Qt绘制函数里使用QImage image((unsigned char*)buf, rect().width(), rect().height(), QImage::Format_ARGB32);
2、移到linux环境下之后,必须将.pro文件中的LIBS += -lgdal_i改成LIBS += -lgdal。
Windows运行的效果如下:
Linux下运行的效果