前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SkeyeGisMap开发文档二

SkeyeGisMap开发文档二

原创
作者头像
Openskeye
发布2023-04-24 15:17:08
9970
发布2023-04-24 15:17:08
举报

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、添加形状(要素)

如果要向地图中添加形状, 则需要扩展地图, 这部分将在 地图扩展 中给出。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、整体架构
  • 2、坐标系
  • 3、转换坐标系
  • 4、操作地图
  • 5、添加形状(要素)
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档