0
点赞
收藏
分享

微信扫一扫

Gis引擎SkeyeGisMap开发文档二

1、整体架构

​SkeyeGisMap​​ 由以下几部分组成:

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

​core​​ 地图核心, 主要定义了地图形状节点, 地图事件, 地图助手工具。

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

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

​style​​ 地图样式加载解析相关, 一般情况下无需关心。

其结构如图所示:

Gis引擎SkeyeGisMap开发文档二_System

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 条评论