OgrFileFormat::OgrFileFormat() : FileFormat(OgrFile, "OGR", ImportExport::tr("Geospatial vector data"), QString::null, ImportSupported) { for (const auto extension : GdalManager().supportedVectorExtensions()) addExtension(QString::fromLatin1(extension)); }
OgrFileImport::OgrFileImport(QIODevice* stream, Map* map, MapView* view, bool drawing_from_projected) : Importer(stream, map, view) , map_srs{ OSRNewSpatialReference(nullptr) } , manager{ OGR_SM_Create(nullptr) } , drawing_from_projected{ drawing_from_projected } { GdalManager().configure(); setOption(QLatin1String{ "Separate layers" }, QVariant{ false }); auto spec = QByteArray::fromRawData("WGS84", 6); auto error = OSRSetWellKnownGeogCS(map_srs.get(), spec); if (!map->getGeoreferencing().isLocal() && !error) { spec = map->getGeoreferencing().getProjectedCRSSpec().toLatin1(); error = OSRImportFromProj4(map_srs.get(), spec); } if (error) { addWarning(tr("Unable to setup \"%1\" SRS for GDAL: %2") .arg(QString::fromLatin1(spec), QString::number(error))); } // Reasonable default? // OGR feature style defaults default_pen_color = new MapColor("Black", 0); default_pen_color->setRgb({0.0, 0.0, 0.0}); default_pen_color->setCmykFromRgb(); map->addColor(default_pen_color, 0); auto default_brush_color = new MapColor("Black 50%", 0); default_brush_color->setRgb({0.5, 0.5, 0.5}); default_brush_color->setCmykFromRgb(); map->addColor(default_brush_color, 1); default_point_symbol = new PointSymbol(); default_point_symbol->setName(tr("Point")); default_point_symbol->setNumberComponent(0, 1); default_point_symbol->setInnerColor(default_pen_color); map->addSymbol(default_point_symbol, 0); default_line_symbol = new LineSymbol(); default_line_symbol->setName(tr("Line")); default_line_symbol->setNumberComponent(0, 2); default_line_symbol->setColor(default_pen_color); default_line_symbol->setLineWidth(0.1); // (0.1 mm, nearly cosmetic) default_line_symbol->setCapStyle(LineSymbol::FlatCap); default_line_symbol->setJoinStyle(LineSymbol::MiterJoin); map->addSymbol(default_line_symbol, 1); default_area_symbol = new AreaSymbol(); default_area_symbol->setName(tr("Area")); default_area_symbol->setNumberComponent(0, 3); default_area_symbol->setColor(default_brush_color); map->addSymbol(default_area_symbol, 2); default_text_symbol = new TextSymbol(); default_text_symbol->setName(tr("Text")); default_text_symbol->setNumberComponent(0, 4); default_text_symbol->setColor(default_pen_color); map->addSymbol(default_text_symbol, 3); }
const std::vector<QByteArray>& OgrTemplate::supportedExtensions() { return GdalManager().supportedVectorExtensions(); }