功能类封装如下:
class MapResource
{
public:
GsMapPtr ptrMap;
GsDisplayPtr m_ptrDisplay;
MapResource()
{
GsRect deviceExtent(0, 0, 1136, 749);//创建一个int类型的矩形
GsMemoryImageCanvasPtr pImgCanvas = new GsMemoryImageCanvas(deviceExtent.Width(), deviceExtent.Height());/// \brief 根据宽和高构建RGBA32位色的画布
GsDisplayTransformationPtr pDT = new GsDisplayTransformation(GsBox(0, 0, 0, 0), deviceExtent);
m_ptrDisplay = new GsDisplay(pImgCanvas, pDT);
ptrMap = new GsMap(NULL);
}
MapResource(const GsBox& boxMap)
{
GsRect deviceExtent(0, 0, 1136, 749);//创建一个int类型的矩形
GsMemoryImageCanvasPtr pImgCanvas = new GsMemoryImageCanvas(deviceExtent.Width(), deviceExtent.Height());/// \brief 根据宽和高构建RGBA32位色的画布
GsDisplayTransformationPtr pDT = new GsDisplayTransformation(boxMap, deviceExtent);
m_ptrDisplay = new GsDisplay(pImgCanvas, pDT);
ptrMap = new GsMap(NULL);
}
void Output(const char* strPath)
{
ptrMap->Output(m_ptrDisplay, NULL);
GsMemoryImageCanvas* pImgCanvas = dynamic_cast<GsMemoryImageCanvas*>(m_ptrDisplay->Canvas());
pImgCanvas->Image()->SavePNG(strPath);
}
void MapExtent(const GsBox& box)
{
m_ptrDisplay->DisplayTransformation()->MapExtent(box);
}
};
声明:GIS内核系列最终目的是为了指导二次开发,类似于各种arcgis二次开发文档博客,GIS内核是一个目前公司的核心库,目前这里提供一些示例,并长期记录.
博客任何内容不涉及商业用途.