⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapinfo.cpp

📁 给予QT的qps开源最新源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
    QString fn = mapSelector->mapPathStr();
    fn.append("/"+mapSelect->currentText());
    image = new QPixmap(fn);

    MapParDialog mapPar(0,this,"properties",TRUE,0);
    mapPar.setCaption(tr("Properties - %1").arg(mapSelect->currentText()));
    // set existing parameters:
    MapBase *aMap;
    int idx=0;
    aMap = mapSelector->first ();
    while((aMap != 0)&&(aMap->name() != mapSelect->currentText()))
    {
        if(aMap->name() != mapSelect->currentText())
        {
            aMap = mapSelector->next();
            idx++;
        }
    }

    int proIdx;
    if(aMap->projection == "LINEAR")
        proIdx = 0;
    else if(aMap->projection == "CEA")
        proIdx = 1;
    else if(aMap->projection == "UTM")
        proIdx = 2;
    else if(aMap->projection == "TM")
        proIdx = 3;
    else if(aMap->projection == "MERCATOR")
        proIdx = 4;
    else if(aMap->projection == "LAMBERT")
        proIdx = 5;
    else if(aMap->projection == "FRITZ")
        proIdx = 6;
    else {
        proIdx = 0; qWarning(tr("fetchmap: unknown projection type"));
    };

    mapPar.projectionCB->setCurrentItem(proIdx);
    mapPar.scaleLE->setText(QString::number(aMap->scale));

    Position pos;
    switch(proIdx)
    {
    case 0: // LINEAR
        mapPar.lg1LE->setText(Position::string(
                 ((MapLin *)aMap)->pos1.lon, Position::Lon));
        mapPar.lt1LE->setText(Position::string(
                 ((MapLin *)aMap)->pos1.lat, Position::Lat));
        mapPar.x1LE->setText(QString::number(((MapLin *)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapLin *)aMap)->y1));

        mapPar.lg2LE->setText(Position::string(
                 ((MapLin *)aMap)->pos2.lon, Position::Lon));
        mapPar.lt2LE->setText(Position::string(
                 ((MapLin *)aMap)->pos2.lat, Position::Lat));
        mapPar.x2LE->setText(QString::number(((MapLin *)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapLin *)aMap)->y2));
        break;

    case 1: // CEA
        aMap->calcPos(pos, ((MapCEA *)aMap)->x1, ((MapCEA *)aMap)->y1);
        mapPar.lg1LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt1LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x1LE->setText(QString::number(((MapCEA *)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapCEA *)aMap)->y1));

        aMap->calcPos(pos, ((MapCEA *)aMap)->x2, ((MapCEA *)aMap)->y2);
        mapPar.lg2LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt2LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x2LE->setText(QString::number(((MapCEA *)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapCEA *)aMap)->y2));
        break;

    case 2: // UTM
        mapPar.zoneLE->setText(((MapUTM*)aMap)->utmZone);
        mapPar.lt1LE->setText(QString::number(((MapUTM*)aMap)->utmNorthing1));
        mapPar.lg1LE->setText(QString::number(((MapUTM*)aMap)->utmEasting1));
        mapPar.x1LE->setText(QString::number(((MapUTM*)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapUTM*)aMap)->y1));
        mapPar.lt2LE->setText(QString::number(((MapUTM*)aMap)->utmNorthing2));
        mapPar.lg2LE->setText(QString::number(((MapUTM*)aMap)->utmEasting2));
        mapPar.x2LE->setText(QString::number(((MapUTM*)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapUTM*)aMap)->y2));
        break;

    case 3: // TM
        aMap->calcPos(pos, ((MapUTM *)aMap)->x1, ((MapUTM *)aMap)->y1);
        mapPar.lg1LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt1LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x1LE->setText(QString::number(((MapUTM *)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapUTM *)aMap)->y1));

        aMap->calcPos(pos, ((MapUTM *)aMap)->x2, ((MapUTM *)aMap)->y2);
        mapPar.lg2LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt2LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x2LE->setText(QString::number(((MapUTM *)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapUTM *)aMap)->y2));
        mapPar.stdLongLE->setText(Position::string(
                 rad2deg(((MapUTM *)aMap)->stdLon), Position::Lon));
        break;

    case 4: // MERCATOR
        aMap->calcPos(pos, ((MapMercator *)aMap)->x1, ((MapMercator *)aMap)->y1);
        mapPar.lg1LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt1LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x1LE->setText(QString::number(((MapMercator *)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapMercator *)aMap)->y1));

        aMap->calcPos(pos, ((MapMercator *)aMap)->x2, ((MapMercator *)aMap)->y2);
        mapPar.lg2LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt2LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x2LE->setText(QString::number(((MapMercator *)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapMercator *)aMap)->y2));
        break;

    case 5: // LAMBERT
        aMap->calcPos(pos, ((MapLambert *)aMap)->x1, ((MapLambert *)aMap)->y1);
        mapPar.lg1LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt1LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x1LE->setText(QString::number(((MapLambert *)aMap)->x1));
        mapPar.y1LE->setText(QString::number(((MapLambert *)aMap)->y1));

        aMap->calcPos(pos, ((MapLambert *)aMap)->x2, ((MapLambert *)aMap)->y2);
        mapPar.lg2LE->setText(Position::string(pos.lon, Position::Lon));
        mapPar.lt2LE->setText(Position::string(pos.lat, Position::Lat));
        mapPar.x2LE->setText(QString::number(((MapLambert *)aMap)->x2));
        mapPar.y2LE->setText(QString::number(((MapLambert *)aMap)->y2));

        mapPar.stdLat1LE->setText(Position::string(
                 rad2deg(((MapLambert*)aMap)->std1Lat), Position::Lat));
        mapPar.stdLat2LE->setText(Position::string(
                 rad2deg(((MapLambert*)aMap)->std2Lat), Position::Lat));
        mapPar.refLongLE->setText(Position::string(
                 rad2deg(((MapLambert*)aMap)->refLon), Position::Lon));
        break;

    case 6: // FRITZ
        mapPar.centerLongLE->setText(Position::string(
                 ((MapFritz*)aMap)->center.lon, Position::Lon));
        mapPar.centerLatLE->setText(Position::string(
                 ((MapFritz*)aMap)->center.lat, Position::Lat));
        break;
    }

    mapPar.exec();
    if(mapPar.result()==QDialog::Accepted)
    {
        // remove orig map entry
        mapSelector->delMap(idx);
        /* transfer map parameters to map entry */
        switch(mapPar.projectionCB->currentItem() )
        {
        case 0: // LINEAR
           {
            QString str = mapSelect->currentText() +" "+ mapPar.scaleLE->text() +" "+
                  str.setNum(image->width()) +" "+ str.setNum(image->height())
                  +" "+
                  QString::number(Position::number(mapPar.lg1LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt1LE->text(), Position::Lat)) +" "+
                  mapPar.x1LE->text() +" "+ mapPar.y1LE->text() + " "+
                  QString::number(Position::number(mapPar.lg2LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt2LE->text(), Position::Lat)) +" "+
                  mapPar.x2LE->text() +" "+ mapPar.y2LE->text();
            MapLin * mapLin = new MapLin(str);
            mapSelector->addMap(mapLin);
           }
            break;
        case 1: // CEA
            {
            QString str = mapSelect->currentText() +" "+  mapPar.scaleLE->text() +" "+
                  str.setNum(image->width()) +" "+ str.setNum(image->height())
                  +" "+
                  QString::number(Position::number(mapPar.lg1LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt1LE->text(), Position::Lat)) +" "+
                  mapPar.x1LE->text() +" "+  mapPar.y1LE->text() + " "+
                  QString::number(Position::number(mapPar.lg2LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt2LE->text(), Position::Lat)) +" "+
                  mapPar.x2LE->text() +" "+  mapPar.y2LE->text();
            MapCEA * mapCea = new MapCEA(str);
            mapSelector->addMap(mapCea);
            }
            break;
	    case 2: // UTM
            {
            QString str = mapSelect->currentText() +" "+  mapPar.scaleLE->text() +" "+
		    str.setNum(image->width()) +" "+
		    str.setNum(image->height()) +" "+
		    mapPar.zoneLE->text() +" "+
		    mapPar.lt1LE->text() +" "+  mapPar.lg1LE->text() +" "+
		    mapPar.x1LE->text() +" "+ mapPar.y1LE->text() + " "+
		    mapPar.lt2LE->text() +" "+  mapPar.lg2LE->text() + " "+
		    mapPar.x2LE->text() +" "+ mapPar.y2LE->text();
            MapUTM * mapUtm2 = new MapUTM(str, TRUE);
            mapSelector->addMap(mapUtm2);
            }
		break;
	    case 3: // TM
      {
                QString str = mapSelect->currentText() +" "+  mapPar.scaleLE->text() +" "+
		    str.setNum(image->width()) +" "+
		    str.setNum(image->height())
		    +" "+
		    QString::number(Position::number(mapPar.lg1LE->text(), Position::Lon)) +" "+
		    QString::number(Position::number(mapPar.lt1LE->text(), Position::Lat)) +" "+
		    mapPar.x1LE->text() +" "+ mapPar.y1LE->text() + " "+
		    QString::number(Position::number(mapPar.lg2LE->text(), Position::Lon)) +" "+
		    QString::number(Position::number(mapPar.lt2LE->text(), Position::Lat)) +" "+
		    mapPar.x2LE->text() +" "+ mapPar.y2LE->text() +
		    " "+ QString::number(Position::number(mapPar.stdLongLE->text(), Position::Lon));
		MapUTM * mapUtm3 = new MapUTM(str, FALSE);
		mapSelector->addMap(mapUtm3);
        }
		break;
       case 4: // MERCATOR
      {
            QString str = mapSelect->currentText() +" "+ mapPar.scaleLE->text() +" "+
                  str.setNum(image->width()) +" "+ str.setNum(image->height())
                  +" "+
                  QString::number(Position::number(mapPar.lg1LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt1LE->text(), Position::Lon)) +" "+
                  mapPar.x1LE->text() +" "+ mapPar.y1LE->text() + " "+
                  QString::number(Position::number(mapPar.lg2LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt2LE->text(), Position::Lon)) +" "+
                  mapPar.x2LE->text() +" "+ mapPar.y2LE->text();
            MapMercator * mapMercator = new MapMercator(str);
            mapSelector->addMap(mapMercator);
        }
            break;
        case 5: // LAMBERT
            {
            QString str = mapSelect->currentText() +" "+ mapPar.scaleLE->text() +" "+
                  str.setNum(image->width()) +" "+ str.setNum(image->height())
                  +" "+
                  QString::number(Position::number(mapPar.lg1LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt1LE->text(), Position::Lat)) +" "+
                  mapPar.x1LE->text() +" "+ mapPar.y1LE->text() + " "+
                  QString::number(Position::number(mapPar.lg2LE->text(), Position::Lon)) +" "+
                  QString::number(Position::number(mapPar.lt2LE->text(), Position::Lat)) +" "+
                  mapPar.x2LE->text() +" "+ mapPar.y2LE->text() +
                  " "+ QString::number(Position::number(mapPar.stdLat1LE->text(), Position::Lat)) +" "+
                  QString::number(Position::number(mapPar.stdLat2LE->text(), Position::Lat)) +" "+
                  QString::number(Position::number(mapPar.refLongLE->text(), Position::Lon));
            MapLambert * mapLambert = new MapLambert(str);
            mapSelector->addMap(mapLambert);
            }
            break;
        case 6: // FRITZ
            {
            QString str = mapSelect->currentText() +" "+ mapPar.scaleLE->text() +" "+
                  str.setNum(image->width()) +" "+ str.setNum(image->height())
                  +" "+ QString::number(Position::number(mapPar.centerLatLE->text(), Position::Lat)) +" "+
                  QString::number(Position::number(mapPar.centerLongLE->text(), Position::Lon));
            MapFritz * mapFritz = new MapFritz(str);
            mapSelector->addMap(mapFritz);
            }
            break;
        }

        mapSelector->writeMapFile();
        mapListChanged();
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -