1、项目案例
SkeyeARS 中的场面监视即实现在 SkeyeGisMap 之上。
欢迎免费使用体验 SkeyeARS : www.openskeye.cn/web/product…
2、环境准备
操作系统:Windows7 及以上
开发环境: Qt 5.12 及以上
3、下载 SkeyeGisMap SDK
- 下载地图核心及相关示例:
- 开发库结构说明
- buildlib SkeyeGisMap 库文件目录(动态库)
- include SkeyeGisMap 头文件目录
- example SkeyeGisMap 相关例子
- coremap.pri 为 qmake 的预包含文件, 当使用 qmake 进行项目管理时可用
4、开始使用
这里我以 coremap/example/start-map 进行说明。
我的编译环境为 MSVC 2019 64bit
首先打开 coremap/example/example.pro, 这是一个子目录项目, 现在先将 start-map 设置为运行项目。
start-map 结构很简单:
QT += quick
include($$PWD/../../coremap.pri)
SOURCES += \
main.cpp
RESOURCES += qml.qrc
直接包含前面的 coremap.pri 即可自动引入依赖。
接着 main 函数也相当简单:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickWindow>
#include <CoreMapItem>
#include <CoordinateReference>
int main(int argc, char *argv[])
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::OpenGL);
QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
QGuiApplication app(argc, argv);
auto defaultFormat = QSurfaceFormat::defaultFormat();
defaultFormat.setSamples(8);
QSurfaceFormat::setDefaultFormat(defaultFormat);
MapItem::activate("73676D79655969576B5A75416A31426A6E4B3768362F4A7A64"
"47467964433174595841755A58686C567778576F4846723445"
"6468646D6C754A6B4A68596D397A595541794D444532525746"
"7A65555268636E6470626C526C5957316C59584E35");
CoordinateReference::setProjDatabaseFile("./../../proj/proj.db");
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);
return app.exec();
}
其中:
MapItem::activate(const QString &) 用于激活 SDK。
CoordinateReference::setProjDatabaseFile(const QString &) 用于设置投影数据库。
最后在 main.qml 创建 MapItem 即可:
import QtQuick 2.15
import QtQuick.Window 2.15
import skeye.map 1.0
Window {
width: 640
height: 480
visible: true
MapItem {
anchors.fill: parent
loadSource: "../../map_source/mapstyles/load_config.json"
}
}
其中:
loadSource: string 用于设置地图的载入配置, 这类文件的生成需要使用我们的地图样式编辑器(开源):
而 mapstyleeditor 后面将会进行详细说明。
start-map 效果图展示(中国地图):