github上的Mapgraphics库。 C ++ / QT / OpenStreetMap的

时间:2018-02-09 12:56:32

标签: c++ qt openstreetmap

我对此库有疑问:https://github.com/raptorswing/MapGraphics。联系制造商没有工作,所以我希望在这里得到帮助,有人可以面对同样的问题。

如何在此库中向地图添加对象?试图这样做是这样的:

    MapGraphicsScene *scene = new MapGraphicsScene();
    MapGraphicsView *view = new MapGraphicsView(scene);

    LineObject line(Position(92.860984, 56.006355), Position(92, 56), 10);
    QPainter linePainter;
    QColor red(255, 0, 0);
    linePainter.setPen(red);
    QStyleOptionGraphicsItem itm;
    line.paint(&linePainter, &itm, view);

    QSharedPointer<OSMTileSource> osmTiles(new OSMTileSource(OSMTileSource::OSMTiles), &QObject::deleteLater);
    QSharedPointer<CompositeTileSource> composite(new CompositeTileSource(), &QObject::deleteLater);
    composite->addSourceBottom(osmTiles);
    view->setTileSource(composite);

但它没有给出任何结果。你能帮助我吗? :(

2 个答案:

答案 0 :(得分:0)

不幸的是,相关的代码位不在您的代码段中,但我想知道它是否是http vs https访问?当您尝试下载this http one等磁贴时,它现在将重定向到https。这引起了许多客户(据我所知,基于Java和基于Flash的客户端)。

github project说“它是一个Qt地图窗口小部件,可以使用MapQuest,Openstreetmap或您定义的自定义源的切片”,这表明它实际上很老,因为Mapquest没有自己的地图切片很长一段时间尝试使用自定义源并定义对OSM磁贴的https访问。

答案 1 :(得分:0)

完成以下操作就足够了:

MapGraphicsObject *line = new LineObject(Position(92.860984, 56.006355), Position(92, 56), 10);
view->scene().addObject(line);

这应该用任何类型的对象来完成。