Programování s knihovnou OGR: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
m (→‎C++: cosmetics)
Řádek 35: Řádek 35:
     if (poDS == NULL) {
     if (poDS == NULL) {
         cerr << "Otevreni '" << filename << "' selhalo." << endl;
         cerr << "Otevreni '" << filename << "' selhalo." << endl;
return 1;
        return 1;
     }
     }
      
      
Řádek 42: Řádek 42:
     if (poLayer == NULL) {
     if (poLayer == NULL) {
         cerr << "Nelze nacist OGR vrstvu." << endl;
         cerr << "Nelze nacist OGR vrstvu." << endl;
return 1;
        return 1;
     }
     }



Verze z 31. 7. 2009, 09:39

Tato stránka obsahuje ukázku zdrojového textu demonstračního programu využívající pro přístup k vektorovým datům knihovnu OGR. Program je inspirován skriptem z cvičení GIS2.

C++

#include <iostream>
#include "ogrsf_frmts.h"

using std::cout;
using std::cerr;
using std::endl;

int main(int argc, char **argv)
{
    const char *filename;
    
    OGRDataSource  *poDS;
    OGRLayer       *poLayer;
    OGRFeatureDefn *poFDefn;

    if (argc != 2) {
	cerr << "Pouziti: " << argv[0] << " shapefile" << endl;
	return 1;
    }
    
    filename = argv[1];
    
    // registrovat dostupne OGR ovladace
    OGRRegisterAll();

    // otevrit ShapeFile pro cteni
    poDS = OGRSFDriverRegistrar::Open(filename, FALSE);
    if (poDS == NULL) {
        cerr << "Otevreni '" << filename << "' selhalo." << endl;
        return 1;
    }
    
    // nacist prvni OGR vrstvu (tj. Shapefile)
    poLayer = poDS->GetLayer(0);
    if (poLayer == NULL) {
        cerr << "Nelze nacist OGR vrstvu." << endl;
        return 1;
    }

    // ziskat informace o vrstve
    poFDefn = poLayer->GetLayerDefn();

    cout << "Detekovana OGR vrstva '" << poFDefn->GetName() << "'.\n\n";

    for(int iField = 0; iField < poFDefn->GetFieldCount(); iField++) {
	// ziskat informace o atributovem sloupci
	OGRFieldDefn *poFieldDefn = poFDefn->GetFieldDefn(iField);
	cout << poFieldDefn->GetNameRef() << endl;
    }

    return 0;
}

Související články

Externí odkazy