关于c++:SkeyeGisMap开发文档二

42次阅读

共计 895 个字符,预计需要花费 3 分钟才能阅读完成。

1、整体架构

SkeyeGisMap 由以下几局部组成:

cdt 只有一个文件, 来自 mapbox 的三角剖分库 earcut, 其官网链接为: https://github.com/mapbox/earcut

core 地图外围, 次要定义了地图形态节点, 地图事件, 地图助手工具。

item 地图的可视化项(即地图容器)。

parser 地图矢量形态解析器 (暂只实现了 Esri Shapefile 格局解析)以及坐标参考。

style 地图款式加载解析相干, 个别状况下无需关怀。

其构造如图所示:

2、坐标系

SkeyeGisMap 中总共有四种坐标系:

  • 1、屏幕坐标系 {Screen Coordinate System}

    该坐标系就是字面意思, 所有的坐标对应屏幕像素坐标。

    通常事件的原始坐标即是屏幕坐标。

    另外, SkeyeGisMap 中的地图事件不间接承受原始的{Qt Event}, 须要进行一些转换。

  • 2、显示坐标系 {Display Coordinate System}

    该坐标系是地图所有可视节点的 (顶点) 坐标系, 即执行绘制时应用的坐标。

  • 3、世界坐标系(地图坐标系) {World Coordinate System}

    SkeyeGisMap 应用 EPSG:32650 做为世界坐标的参考系.

    次要来自于地图矢量形态解析器解析后产生的坐标, 通常不须要关注.

  • 4、经纬度坐标系 {Lonlat Coordinate System}

    SkeyeGisMap 应用 EPSG:4326 做为经纬度坐标的参考系.

3、转换坐标系

对于地图自身, 只应用屏幕坐标, 显示坐标和地图坐标。

这三种坐标之间的转换由地图助手 MapAssistant 提供, 它位于 core/mapassistant.h

而地图坐标 (世界坐标) 与经纬度坐标的转换则由 CoordinateReference 提供, 它位于 parser/coordinatereference.h

4、操作地图

操作地图地图由地图助手 MapAssistant 提供。

MapAssistant 提供三种根底地图操作: 旋转、缩放、平移, 通常状况下无需调用(地图外部曾经调用)。

5、增加形态(因素)

如果要向地图中增加形态, 则须要扩大地图, 这部分将在 地图扩大 中给出。

正文完
 0