OSMAND_CORE_UTILS_API bool OSMAND_CORE_UTILS_CALL OsmAnd::Voyager::parseCommandLineArguments( const QStringList& cmdLineArgs, Configuration& cfg, QString& error ) { bool wasObfRootSpecified = false; bool wasRouterConfigSpecified = false; for(auto itArg = cmdLineArgs.begin(); itArg != cmdLineArgs.end(); ++itArg) { auto arg = *itArg; if (arg.startsWith("-config=")) { QFile configFile(arg.mid(strlen("-config="))); if(!configFile.exists()) { error = "Router configuration file does not exist"; return false; } configFile.open(QIODevice::ReadOnly | QIODevice::Text); if(!RoutingConfiguration::parseConfiguration(&configFile, cfg.routingConfig)) { error = "Bad router configuration"; return false; } configFile.close(); wasRouterConfigSpecified = true; } else if (arg.startsWith("-verbose")) { cfg.verbose = true; } else if (arg.startsWith("-obfsDir=")) { QDir obfRoot(arg.mid(strlen("-obfsDir="))); if(!obfRoot.exists()) { error = "OBF directory does not exist"; return false; } lookForObfs(obfRoot, cfg.obfs); wasObfRootSpecified = true; } else if (arg.startsWith("-start=")) { auto coords = arg.mid(strlen("-start=")).split(QChar(';')); cfg.startLatitude = coords[0].toDouble(); cfg.startLongitude = coords[1].toDouble(); } else if (arg.startsWith("-end=")) { auto coords = arg.mid(strlen("-end=")).split(QChar(';')); cfg.endLatitude = coords[0].toDouble(); cfg.endLongitude = coords[1].toDouble(); } } if(!wasObfRootSpecified) lookForObfs(QDir::current(), cfg.obfs); if(!wasRouterConfigSpecified) RoutingConfiguration::loadDefault(cfg.routingConfig); return true; }
OSMAND_CORE_UTILS_API bool OSMAND_CORE_UTILS_CALL OsmAnd::Voyager::parseCommandLineArguments( const QStringList& cmdLineArgs, Configuration& cfg, QString& error ) { bool wasObfRootSpecified = false; bool wasRouterConfigSpecified = false; for(auto itArg = cmdLineArgs.begin(); itArg != cmdLineArgs.end(); ++itArg) { auto arg = *itArg; if (arg.startsWith("-config=")) { QFile configFile(arg.mid(strlen("-config="))); if(!configFile.exists()) { error = "Router configuration file does not exist"; return false; } configFile.open(QIODevice::ReadOnly | QIODevice::Text); if(!RoutingConfiguration::parseConfiguration(&configFile, *cfg.routingConfig.get())) { error = "Bad router configuration"; return false; } configFile.close(); wasRouterConfigSpecified = true; } else if (arg == "-verbose") { cfg.verbose = true; } else if (arg == "-xml") { cfg.generateXml = true; } else if (arg == "-recalc") { cfg.doRecalculate = true; } else if (arg.startsWith("-obfsDir=")) { QDir obfRoot(arg.mid(strlen("-obfsDir="))); if(!obfRoot.exists()) { error = "OBF directory does not exist"; return false; } Utilities::findFiles(obfRoot, QStringList() << "*.obf", cfg.obfs); wasObfRootSpecified = true; } else if (arg.startsWith("-vehicle=")) { cfg.vehicle = arg.mid(strlen("-vehicle=")); } else if (arg.startsWith("-memlimit=")) { bool ok; cfg.memoryLimit = arg.mid(strlen("-memlimit=")).toInt(&ok); if(!ok || cfg.memoryLimit < 0) { error = "Bad memory limit"; return false; } } else if (arg.startsWith("-start=")) { auto coords = arg.mid(strlen("-start=")).split(QChar(';')); cfg.startLatitude = coords[0].toDouble(); cfg.startLongitude = coords[1].toDouble(); } else if (arg.startsWith("-waypoint=")) { auto coords = arg.mid(strlen("-waypoint=")).split(QChar(';')); auto latitude = coords[0].toDouble(); auto longitude = coords[1].toDouble(); cfg.waypoints.push_back(std::pair<double, double>(latitude, longitude)); } else if (arg.startsWith("-end=")) { auto coords = arg.mid(strlen("-end=")).split(QChar(';')); cfg.endLatitude = coords[0].toDouble(); cfg.endLongitude = coords[1].toDouble(); } else if (arg == "-left") { cfg.leftSide = true; } else if (arg.startsWith("-gpx=")) { cfg.gpxPath = arg.mid(strlen("-gpx=")); } } if(!wasObfRootSpecified) Utilities::findFiles(QDir::current(), QStringList() << "*.obf", cfg.obfs); if(cfg.obfs.isEmpty()) { error = "No OBF files loaded"; return false; } if(!wasRouterConfigSpecified) RoutingConfiguration::loadDefault(*cfg.routingConfig); return true; }
OSMAND_CORE_UTILS_API bool OSMAND_CORE_UTILS_CALL OsmAnd::EyePiece::parseCommandLineArguments( const QStringList& cmdLineArgs, Configuration& cfg, QString& error ) { bool wasObfRootSpecified = false; for(auto itArg = cmdLineArgs.begin(); itArg != cmdLineArgs.end(); ++itArg) { auto arg = *itArg; if (arg == "-verbose") { cfg.verbose = true; } else if (arg == "-dumpRules") { cfg.dumpRules = true; } else if (arg == "-map") { cfg.drawMap = true; } else if (arg == "-text") { cfg.drawText = true; } else if (arg == "-icons") { cfg.drawIcons = true; } else if (arg.startsWith("-stylesPath=")) { auto path = arg.mid(strlen("-stylesPath=")); QDir dir(path); if(!dir.exists()) { error = "Style directory '" + path + "' does not exist"; return false; } Utilities::findFiles(dir, QStringList() << "*.render.xml", cfg.styleFiles); } else if (arg.startsWith("-style=")) { cfg.styleName = arg.mid(strlen("-style=")); } else if (arg.startsWith("-obfsDir=")) { QDir obfRoot(arg.mid(strlen("-obfsDir="))); if(!obfRoot.exists()) { error = "OBF directory does not exist"; return false; } cfg.obfsDir = obfRoot; wasObfRootSpecified = true; } else if(arg.startsWith("-bbox=")) { auto values = arg.mid(strlen("-bbox=")).split(","); cfg.bbox.left = values[0].toDouble(); cfg.bbox.top = values[1].toDouble(); cfg.bbox.right = values[2].toDouble(); cfg.bbox.bottom = values[3].toDouble(); } else if(arg.startsWith("-zoom=")) { cfg.zoom = static_cast<ZoomLevel>(arg.mid(strlen("-zoom=")).toInt()); } else if(arg.startsWith("-tileSide=")) { cfg.tileSide = arg.mid(strlen("-tileSide=")).toInt(); } else if(arg.startsWith("-density=")) { cfg.densityFactor = arg.mid(strlen("-density=")).toFloat(); } else if(arg == "-32bit") { cfg.is32bit = true; } else if(arg.startsWith("-output=")) { cfg.output = arg.mid(strlen("-output=")); } } if(!cfg.drawMap && !cfg.drawText && !cfg.drawIcons) { cfg.drawMap = true; cfg.drawText = true; cfg.drawIcons = true; } if(!wasObfRootSpecified) cfg.obfsDir = QDir::current(); return true; }