| 668 | } |
| 669 | |
| 670 | void Generator::InitProfiles(std::string const & isolinesProfilesFileName, |
| 671 | std::string const & countriesToGenerateFileName, std::string const & isolinesTilesOutDir, |
| 672 | std::string const & isolinesCountriesOutDir) |
| 673 | { |
| 674 | CHECK(Deserialize(isolinesProfilesFileName, m_profilesCollection), ()); |
| 675 | CHECK(Deserialize(countriesToGenerateFileName, m_countriesToGenerate), ()); |
| 676 | |
| 677 | auto const & profiles = m_profilesCollection.m_profiles; |
| 678 | for (auto const & countryParams : m_countriesToGenerate.m_countryParams) |
| 679 | { |
| 680 | auto const & params = countryParams.second; |
| 681 | CHECK(profiles.find(params.m_profileName) != profiles.end(), ("Unknown profile name", params.m_profileName)); |
| 682 | } |
| 683 | |
| 684 | m_isolinesTilesOutDir = isolinesTilesOutDir; |
| 685 | m_isolinesCountriesOutDir = isolinesCountriesOutDir; |
| 686 | |
| 687 | for (auto const & profile : m_profilesCollection.m_profiles) |
| 688 | { |
| 689 | auto const & profileName = profile.first; |
| 690 | auto const & profileParams = profile.second; |
| 691 | |
| 692 | TileIsolinesParams tileParams; |
| 693 | tileParams.m_outputDir = GetTilesDir(isolinesTilesOutDir, profileName); |
| 694 | tileParams.m_latLonStepFactor = profileParams.m_latLonStepFactor; |
| 695 | tileParams.m_alitudesStep = profileParams.m_alitudesStep; |
| 696 | tileParams.m_simplificationZoom = profileParams.m_simplificationZoom; |
| 697 | if (profileParams.m_medianFilterR > 0) |
| 698 | tileParams.m_filters.emplace_back(std::make_unique<MedianFilter<Altitude>>(profileParams.m_medianFilterR)); |
| 699 | if (profileParams.m_gaussianFilterStDev > 0.0 && profileParams.m_gaussianFilterRFactor > 0) |
| 700 | { |
| 701 | tileParams.m_filters.emplace_back(std::make_unique<GaussianFilter<Altitude>>( |
| 702 | profileParams.m_gaussianFilterStDev, profileParams.m_gaussianFilterRFactor)); |
| 703 | } |
| 704 | m_profileToTileParams.emplace(profileName, std::move(tileParams)); |
| 705 | |
| 706 | IsolinesPackingParams packingParams; |
| 707 | packingParams.m_outputDir = isolinesCountriesOutDir; |
| 708 | packingParams.m_simplificationZoom = 0; |
| 709 | packingParams.m_alitudesStepFactor = 1; |
| 710 | packingParams.m_isolinesTilesPath = GetTilesDir(isolinesTilesOutDir, profileName); |
| 711 | packingParams.m_maxIsolineLength = profileParams.m_maxIsolinesLength; |
| 712 | m_profileToPackingParams.emplace(profileName, std::move(packingParams)); |
| 713 | } |
| 714 | } |
| 715 | |
| 716 | void Generator::GetCountryRegions(storage::CountryId const & countryId, m2::RectD & countryRect, |
| 717 | std::vector<m2::RegionD> & countryRegions) |
no test coverage detected